Apache重写规则适用于localhost,但不适用于服务器

ato*_*nda 2 php apache .htaccess mod-rewrite url-rewriting

我有一个网站,我想使用Apache的RewriteRule来重写URL.我想要:

我在我的Mac上安装了AMPPS,并添加了以下行,httpd.conf并且它们成功运行:

RewriteEngine On
RewriteRule ^/p/(.*) /index.php?p=$1 [PT]
Run Code Online (Sandbox Code Playgroud)

我试图在我的服务器上做同样的事情.我已添加相同的apache代码,/public_html/.htaccess但我收到以下错误消息:

未找到
在此服务器上找不到请求的URL/p/home.此外,尝试使用ErrorDocument处理请求时遇到404 Not Found错误.

完全相同的代码在我的localhost服务器上运行.为什么不在我的网站上?

ris*_*sin 5

你能检查你的远程服务器apache支持"AllowOverride All"吗?

也尝试这种方式也许它会有所帮助.

RewriteEngine On
RewriteRule ^p/(.*) /index.php?p=$1 [PT]
Run Code Online (Sandbox Code Playgroud)

但你可能需要正确修改$ _GET ['p'].这将只发送"家"部分.