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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.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 mod_rewrite不重写_Apache_.htaccess_Mod Rewrite - Fatal编程技术网

Apache mod_rewrite不重写

Apache mod_rewrite不重写,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,我有以下代码: RewriteEngine on RewriteRule ^user/([a-z]+)$ index.php?Agent=$1 [QSA] 理论上,任何使用以下格式访问我的网站的访问者: www.site.com/user/username 应发送至: www.site.com/index.php?Agent=username 相反,它们被视为/user是一个真实的目录,并且/user/username是一个有效的文件并且存在(它不存在)。有什么想法吗 编辑#1 我稍微修改

我有以下代码:

RewriteEngine on
RewriteRule ^user/([a-z]+)$ index.php?Agent=$1 [QSA]
理论上,任何使用以下格式访问我的网站的访问者:

www.site.com/user/username
应发送至:

www.site.com/index.php?Agent=username
相反,它们被视为/user是一个真实的目录,并且/user/username是一个有效的文件并且存在(它不存在)。有什么想法吗

编辑#1 我稍微修改了我的htaccess,甚至去掉了/user需求,下面的.htaccess文件导致了500个错误,即使仅访问主域(www.site.com):


这是暗中操作,但我建议您重新检查Apache配置文件
apache2.conf
文件,以确保启用了
mod_rewrite

找一条这样的线:
\LoadModule rewrite\u module modules/mod\u rewrite.so

并将其更改为:
LoadModule rewrite\u module modules/mod\u rewrite.so

编辑:然后重新启动web服务器,使更改生效


希望这有帮助

它应该有用。我在重写时使用的几乎就是这一行。以下是我得到的:

RewriteRule ^history/(.+)?$ history.php?display_name=$1 [QSA,L]
请注意“L”标志,这意味着mod_rewrite应在此时停止,而不处理任何其他重写规则。在这之后你还有其他的重写规则吗

你把这个放进去了吗?确保它正在被处理。把一些随机垃圾放进去,然后加载一个页面。Apache应该向您显示一个错误页面,抱怨服务器配置错误。如果没有,它甚至不会查看您的.htaccess文件。确保在apache配置中,此网页所在目录的“AllowOverride”设置为“FileInfo Options”

相反,它们被视为/user是一个真实的目录,并且/user/username是一个有效的文件并且存在(它不存在)

你这样说到底是什么意思?它显示了什么

是否要重写或**重定向

当用户输入www.site.com/user/username时,Rewrite=调用www.site.com/index.php?Agent=用户名

重定向=将用户重定向到另一个URL,使其地址字段显示www.site.com/index.php?Agent=username

现在,您的代码应该重写,而不是重定向,这可能是您想要的。只是检查一下

您的问题可能是您正在测试的用户名包含大写字母。添加NC使匹配不区分大小写

RewriteRule ^user/([a-z]+)$ index.php?Agent=$1 [QSA,NC]
如果要允许字母a-z以外的其他字符,可以向character类添加更多字符,或者只编写
(.+)
以匹配任何字符

编辑

根据下面的问题,我认为发生无限重定向是因为规则被再次触发,因为重写匹配新的index.php请求。只要检查重定向的目标不是文件,就可以解决这个问题。(-f=“is file”。!=否定条件。)


您是否已检查以确保
mod\u rewrite
配置正确?在该根目录中是否有名为
user
的目录?如果重写结束,您可能还希望将
[L]
添加到该
[QSA]
。@Tim Cooper-mod\u rewrite已启用,yes@Orbling-否没有名为/root的目录,不需要基于重写规则。如果启用了重写,则重写将用于我的htaccess文件的其他部分。谢谢你的建议!当输入用户名(例如www.site.com/username)时,它将查找文件用户名,而不是使用所列格式重写。重写,对。我尝试过不使用case,最后一行,重写/重定向,不使用任何东西(也使用了(+),但没有任何改变!@nitrok2k01-我可能发现了部分问题,但是当我删除/user/子句时(RewriteRule^(.+)$index.php?Agent=$1[QSA,NC,L,R])它给出了一个500无限重定向错误。有什么想法吗?我用了作为最后一行,没有,似乎没有什么区别。我把它都放在htaccess和虚拟主机配置文件中,没有区别(vhost.conf)。我知道它正在读取htaccess,因为在最新的编辑中,我收到了一个500重定向错误。我看到了你的编辑。出于好奇,当你删除前两个重写条件和第一个重写规则时,它是否有效?如果你删除了所有有问题的规则,只是为了测试,尝试缩小范围?
RewriteRule ^user/([a-z]+)$ index.php?Agent=$1 [QSA,NC]
RewriteCond %{REQUEST_FILENAME} !-f