Php Apache重写规则适用于本地主机,但不适用于服务器
我有一个网站,我想使用Apache的重写规则来重写URL。 我想:Php Apache重写规则适用于本地主机,但不适用于服务器,php,apache,.htaccess,mod-rewrite,url-rewriting,Php,Apache,.htaccess,Mod Rewrite,Url Rewriting,我有一个网站,我想使用Apache的重写规则来重写URL。 我想: 改写 我在Mac上安装了AMPP,并将以下行添加到httpd.conf中,它们成功地工作: RewriteEngine On RewriteRule ^/p/(.*) /index.php?p=$1 [PT] 我正在尝试做同样的事情,但在我的服务器上。 我已经在/public\u html/.htaccess中添加了相同的apache代码,但是我得到了下面的错误消息: 未找到 在此服务器上找不到请求的URL/p/hom
改写
httpd.conf
中,它们成功地工作:
RewriteEngine On
RewriteRule ^/p/(.*) /index.php?p=$1 [PT]
我正在尝试做同样的事情,但在我的服务器上。
我已经在/public\u html/.htaccess
中添加了相同的apache代码,但是我得到了下面的错误消息:
未找到在此服务器上找不到请求的URL/p/home。 此外,尝试使用ErrorDocument处理请求时遇到404 Not Found错误
完全相同的代码适用于我的本地主机服务器。为什么不在我的网站上?您需要从重写规则的模式中删除前导斜杠。当重写引擎在htaccess文件中应用规则时,URI的前导斜杠被删除
RewriteEngine On
RewriteRule ^p/(.*) /index.php?p=$1 [PT]
你能检查一下你的远程服务器apache支持“AllowOverride All”吗 也试试这种方法,也许会有帮助
RewriteEngine On
RewriteRule ^p/(.*) /index.php?p=$1 [PT]
但您可能必须正确修改$\u GET['p']。只发送“主”部件。
重新启动发动机
重写cond%{HTTP_HOST}^www\.baileyseymour\.com
重写规则^(.*)$http://www.baileyseymour.com/$1[R=301,L]
.htaccess是放置它们的正确位置,该文件应与默认主页位于同一目录中
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.baileyseymour\.com
RewriteRule ^(.*)$ http://www.baileyseymour.com/$1 [R=301,L]
</IfModule>