Файл .htaccess работает, но вызывает постоянное обновление / перенаправления - PullRequest
1 голос
/ 07 октября 2019

Я изменил свой .htaccess на основе учебника, чтобы скрыть расширение .php и $ _Get от URL, но страница продолжает прыгать.

Я пробовал несколько изменений .htaccess, этотолько тот, который даже частично работает. Однако, это, кажется, вызывает постоянные перенаправления / обновления.

RewriteEngine on

RewriteBase /

RewriteCond %{HTTP:X-Forwarded-Proto} =http

RewriteRule .* https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent]

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME}\.php -f

RewriteRule ^(.*)/([0-9a-zA-Z_-]+) $1.php?name=$2 [NC,L]

Хотите изменить "profile.php?name=company-name" на "profile/company-name", чтобы страница не выглядела или функционировала иначе. Часть динамического контента $_Get загружается, но вся страница пропускается, и ни один из стилей CSS не работает.

1 Ответ

1 голос
/ 07 октября 2019

Замените все ваши правила на это:

RewriteEngine on    
RewriteBase /

RewriteCond %{HTTPS} !on
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteRule ^ https://%{HTTP:Host}%{REQUEST_URI} [L,R=301,NE]

RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^([^/]+)/?$ $1.php [L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^([^/]+)/([\w-]+)/?$ $1.php?name=$2 [QSA,L]

Обязательно протестируйте это изменение в новом браузере, чтобы избежать кеша старого браузера.

Для ваших css / js / Issues добавьтеэто чуть ниже <head> тег HTML вашей страницы:

<base href="/" />

, так что каждый относительный URL разрешается из этого базового URL, а не из URL текущей страницы.

...