1

我的网站上有这个简单的重定向,它不会自动重写我的 url,我必须手动输入其他 URL 才能访问它,可能是什么问题,我需要在 php.ini 中启用某些东西,下面是重写规则

RewriteEngine On
RewriteRule ^new-page-([^/]*)\.php$ /mypage.php?name=$1 [L]
4

3 回答 3

2

如果您正在这样做,.htaccess您还应该指定RewriteBase /. 尝试

RewriteEngine On
RewriteBase /
RewriteRule ^new-page-([^/]*)\.php$ mypage.php?name=$1 [L]

这重写new-page-something.phpmypage.php?name=something内部。

添加:

也许你想要这个:

RewriteEngine On
RewriteBase /
RewriteRule ^new-page-([^/]*)\.php$ mypage.php?name=$1 [L]
RewriteCond %{THE_REQUEST} ^(GET|POST|HEAD|TRACE)\ /mypage.php
RewriteCond %{QUERY_STRING} name=([^\&]*)
RewriteRule ^mypage.php$ new-page-%1.php? [R,L]

第一个添加的 RewriteCond 检查实际请求是否正在请求/mypage.php以防止重定向循环。第二个添加的 RewriteCond 用于匹配查询字符串以在 RewriteRule 中使用。

于 2012-06-20T09:03:53.323 回答
1

检查您的 apache 配置(httpd.conf),看看它是否允许覆盖 htaccess

http://httpd.apache.org/docs/2.0/howto/htaccess.html

于 2012-06-20T09:04:45.617 回答
0

我有以下链接

www.preparationweb.com/Aptitude/Discussion/index.php?qid=26

我喜欢它显示为

www.preparationweb.com/Aptitude/Discussion/26

您能否根据提供的链接向我提供要放置在 .htaccess 文件中的代码。我有一个godaddy托管。

于 2014-09-17T09:31:45.990 回答