2013-08-28 29 views
0

,这里是我的网站找不出PHP的查询字符串的mod_rewrite =/

http://www.coolcodez.net/ios/nicucalc

通知,当你在页面上点击你的网址喜欢

http://www.coolcodez.net/ios/nicucalc/index.php?page=features

我把导航我的nicucalc目录中有一个.htaccess文件。我想要的URL看起来像这样

http://www.coolcodez.net/ios/nicucalc/features

更妙的是

http://www.coolcodez.net/nicucalc/features

这里是我的htaccess文件。它从来没有正常工作..

RewriteEngine on 
RewriteCond %{QUERY_STRING} ^page=(.*)$ 
RewriteRule ^index\.php$ /%1/? [R=301,L] 

我做错了什么。解释也请

也注意:这个文件夹位于wordpress安装文件夹内。不知道该htaccess文件是否会以某种方式影响我的

回答

0

您将请求index.php重定向到/features/(或任何“页面”)的规则。这本身没什么问题,但你需要一些内部重写它的东西返回到index.php。正因为如此,你需要2个规则,一个重定向(匹配请求)和一个内部重写(匹配URI):

RewriteEngine On 
RewriteBase /ios/nicucalc/ 

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /ios/nicucalc/index\.php\?page=([^&\ ]+)&?([^\ ]*) 
RewriteRule^/ios/nicucalc/%1?%2 [L,R=301] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?page=$1 [L,QSA] 

的第一个规则与请求相匹配,这看起来像:

GET /ios/nicucalc/index.php?page=features HTTP/1.1 

使用%1在规则中捕获并反向引用“功能”。第二条规则首先检查请求是否指向现有的文件或目录。如果没有,则捕获URI并将其重写为index.php,并通过“page”参数将URI传递给脚本。

+0

这似乎并没有工作。我有这在我的htaccess文件中实现。你可以尝试去现在的网站 – hamobi

+0

@hamobi这些规则希望在'/ ios/nicucalc /' –

+0

这是htaccess文件这就是它在哪里它是 http://coolcodez.net/ios/nicucalc/ Capture.png – hamobi