.htaccess 文件正在运行,但导致常量 refreshing/redirects

.htaccess file is working but causes constant refreshing/redirects

我已经根据教程更改了我的 .htaccess 以隐藏 .php 文件扩展名和 $_Get from URL 但是页面一直在跳转。

我已经尝试了很多 .htaccess 更改,这是唯一一个部分有效的更改。但是,它似乎导致常数 redirects/refreshes。

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_-]+) .php?name= [NC,L]

希望将 "profile.php?name=company-name" 更改为 "profile/company-name",但页面外观或功能不会有任何不同。某些 $_Get 动态内容正在加载,但整个页面一直在跳过,并且 CSS 样式中的 none 正在工作。

将您的所有规则替换为:

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}/.php -f
RewriteRule ^([^/]+)/?$ .php [L]

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

确保在新浏览器中测试此更改以避免旧浏览器缓存。

对于您的 css/js/issues,将其添加到您页面 HTML 的 <head> 标签下方:

<base href="/" />

这样每个 亲戚 URL 都是从该基础 URL 解析的,而不是从当前页面的 URL.