mod_rewrite不转发到新的URL


mod_rewrite not forwarding to new URL

我几乎到处都读过,我禁用了MultiViews, a2enmods重写,以及几乎所有我能找到的东西。

My .htaccess文件:

RewriteEngine on
RewriteRule ^PHP/ig/profile.php?user=([A-Za-z0-9]+)$ /PHP/ig/profile/$1 [L]

我的网站配置:

<VirtualHost *:80>
    ServerAdmin admin@espionage.pw
    DocumentRoot /var/www/espionage.pw/public_html
    ServerName espionage.pw
    ServerAlias www.espionage.pw
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    <Directory /var/www/espionage.pw/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

我的。htaccess文件在/var/www/espionage.pw/中我可以确认它正在被读取,因为当我输入随机字符时,在试图连接到我的网站时出现错误。

我真不知道该怎么办才好。请提出任何可能有帮助的建议。我花了一整天的时间在这件事上,我开始生气了。

谢谢你的帮助。

编辑:我在error.log中也有一个错误[Fri Aug 22 19:00:35.168341 2014] [negotiation:error] [pid 20230] [client myip:62633] AH00687:协商:发现文件匹配请求:/var/www/间谍pw/public_html/PHP/ig/profile(无可协商).

我删除了MultiViews,所以这个问题应该已经解决了。

我也试过了:

RewriteRule ^/PHP/ig/profile.php$ /PHP/index.php [L]

没有将/PHP/ig/profile.php重写为/PHP/index.php

您的文档根目录是:

DocumentRoot /var/www/espionage.pw/public_html

你说你的.htaccess文件位于文件夹:

/var/www/espionage.pw

Apache将永远不会从/var/www/espionage.pw提供文件,因为它不是文档根目录的一部分,所以您的.htaccess文件将不会被读取或使用。

你需要把你的.htaccess文件放在/var/www/espionage.pw/public_html文件夹或文件夹内的一个文件夹,如果你想限制它的使用子文件夹

只是为了确定,因为完整的。htaccess没有发布…你把

RewriteEngine On

在规则之前?