2

我有一个网站,我想使用 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 错误。

完全相同的代码适用于我的本地主机服务器。为什么不在我的网站上?

4

3 回答 3

5

您可以检查您的远程服务器 apache 是否支持“AllowOverride All”?

也试试这种方式也许会有所帮助。

RewriteEngine On
RewriteRule ^p/(.*) /index.php?p=$1 [PT]

但您可能必须正确修改 $_GET['p'] 。这将只发送“家”部分。

于 2013-08-30T00:09:20.353 回答
3

您需要从重写规则的模式中删除前导斜杠。当重写引擎在 htaccess 文件中应用规则时,URI 的前导斜杠被删除。

RewriteEngine On
RewriteRule ^p/(.*) /index.php?p=$1 [PT]
于 2013-08-30T00:05:06.613 回答
1
<IfModule mod_rewrite.c>

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.baileyseymour\.com
RewriteRule ^(.*)$ http://www.baileyseymour.com/$1 [R=301,L]

</IfModule>

.htaccess 是放置它们的正确位置,并且该文件应与默认主页位于同一目录中。

于 2013-08-30T00:15:37.853 回答