Apache 删除文件扩展名后重写url查询字符串
我在理解如何在删除文件扩展名后正确地重写查询字符串时遇到问题 我的当前代码生成错误500:Apache 删除文件扩展名后重写url查询字符串,apache,.htaccess,mod-rewrite,url-rewriting,Apache,.htaccess,Mod Rewrite,Url Rewriting,我在理解如何在删除文件扩展名后正确地重写查询字符串时遇到问题 我的当前代码生成错误500:此外,尝试使用ErrorDocument处理请求时遇到500内部服务器错误。 以下是我的htaccess重写: RewriteEngine On RewriteBase / RewriteCond %{HTTPS} !=on RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] RewriteCond %{REQUEST_FILENAME}
此外,尝试使用ErrorDocument处理请求时遇到500内部服务器错误。
以下是我的htaccess重写:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [NC,L]
RewriteRule ^login/([a-zA-Z0-9-=_?]+)/?$ login.php?user=$1 [L,QSA]
删除最后一行(RewriteRule^login/([a-zA-Z0-9-=\u?]+)/?$login.php?user=$1[L,QSA]
)后,服务器错误消失
我需要做哪些更改才能做到这一点?将您的规则按以下顺序排列:
Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteRule ^login/([\w=-]+)/?$ login.php?user=$1 [L,QSA,NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+?)/?$ $1.php [L]
将规则按以下顺序排列:
Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteRule ^login/([\w=-]+)/?$ login.php?user=$1 [L,QSA,NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+?)/?$ $1.php [L]
你好谢谢你的回复!这会删除错误,但不允许找到任何资源,例如
css
或javascript
,是否有办法解决此问题?这是因为使用了相对路径。要修复此问题,您可以将其添加到页面HTML的
部分下方:
您好!谢谢你的回复!这会删除错误,但不允许找到任何资源,例如css
或javascript
,是否有办法解决此问题?这是因为使用了相对路径。要修复此问题,您可以将其添加到页面HTML的
部分下方: