我有一个网站,我想使用Apache的RewriteRule来重写URL。 我想要:
我在Mac上安装了AMPPS,并将以下行添加到httpd.conf
并且它们成功运行:
RewriteEngine On
RewriteRule ^/p/(.*) /index.php?p=$1 [PT]
我正在尝试在我的服务器上执行相同的操作。
我已将相同的apache代码添加到/public_html/.htaccess
,但我收到以下错误消息:
未找到
在此服务器上找不到请求的URL / p / home。 此外,尝试使用ErrorDocument处理请求时遇到404 Not Found错误。
完全相同的代码在我的localhost服务器上运行。为什么不在我的网站上?
答案 0 :(得分:5)
你能检查你的远程服务器apache支持“AllowOverride All”吗?
也尝试这种方式也许会有所帮助。
RewriteEngine On
RewriteRule ^p/(.*) /index.php?p=$1 [PT]
但您可能需要正确修改$ _GET ['p']。这将只发送“家庭”部分。
答案 1 :(得分:3)
您需要从重写规则的模式中删除前导斜杠。当重写引擎在htaccess文件中应用规则时,URI会删除其前导斜杠。
RewriteEngine On
RewriteRule ^p/(.*) /index.php?p=$1 [PT]
答案 2 :(得分:1)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.baileyseymour\.com
RewriteRule ^(.*)$ http://www.baileyseymour.com/$1 [R=301,L]
</IfModule>
.htaccess是放置它们的正确位置,该文件应与默认主页位于同一目录中。