Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 删除文件扩展名后重写url查询字符串_Apache_.htaccess_Mod Rewrite_Url Rewriting - Fatal编程技术网

Apache 删除文件扩展名后重写url查询字符串

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}

我在理解如何在删除文件扩展名后正确地重写查询字符串时遇到问题

我的当前代码生成错误500:
此外,尝试使用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的
部分下方: