Redirect index.php не загружает CSS с косой чертой в параметрах URL PHP - PullRequest
0 голосов
/ 11 января 2019

Я использую .htaccess, чтобы удалить index.php из URL и использовать его параметры с / (косая черта).

Например, до:

example.com/index.php?id=posts

после

example.com/posts

Я также использую .htaccess, чтобы разрешить / (косая черта) в таких параметрах, как: example.com/posts/mypost, где posts / mypost - это параметр index.php!

Но моя проблема в том, что когда я получаю доступ к параметру с помощью / (косая черта), например: example.com/posts/mypost, он загружает страницу, но без загрузки CSS, он работает только, если я использую без /, как в example.com/posts или просто строка без баров! Но если я УДАЛЮ эту часть кода .htaccess:

RewriteCond %{THE_REQUEST} ^.*/index\.php

RewriteRule ^(.*)index.php$ /$1 [R=301,L]

Параметр с / работает через косую черту, однако используется index.php?Id=, например: example.com/index.php?id=posts/mypost. Но это не то, что я хочу, я хочу удалить index.php и использовать его параметры с / косой чертой!

Мой .htaccess полный код:

#remove index.php
RewriteCond %{THE_REQUEST} ^.*/index\.php 
RewriteRule ^(.*)index.php$ /$1 [R=301,L] 

#use parameters without " ?id= "
RewriteEngine on
RewriteRule ^/?index.php$ - [L,NC]
RewriteRule ^([a-zA-Z0-9.]+)?$ index.php?id=$1 [QSA,L]

#allow " / " slash
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !-d 
RewriteRule (.*) index.php?id=$1 [L,NS]

1 Ответ

0 голосов
/ 11 января 2019

При использовании:

<link rel="stylesheet" type="text/css" href="css/style.css">

И ваш URL: example.com/posts

Ваш браузер ищет: example.com/posts/css/style.css

Просто изменив его на:

<link rel="stylesheet" type="text/css" href="/css/style.css">

Независимо от того, сколько папок вы глубоко зашли, браузер всегда будет обращаться к корню файла.

так example.com/posts будет искать example.com/css/style.css

так что example.com/posts/more/and/more/and/more все равно будет искать example.com/css/style.css.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...