1

我有一个动态页面,它获取“p”参数来显示内容:

m.mydomain.com/index.php?p=key

我想要某种干净的网址。

这是我的实际 htaccess:

AddType x-mapp-php5 .php

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

所以:

m.mydomain.com/key -> doesn't work (404 page)
m.mydomain.com/index/key -> blank page

如何获得 m.mydomain.com/key ?

请帮帮我,我要疯了!!!

4

2 回答 2

0

我看到的一个问题是您的 RewriteRule 将捕获对 index.php 的直接调用,并尝试重定向

m.mydomain.com/index.php 

m.mydomain.com/index.php?p=index.php

您可以通过首先使用如下所示的单独重写规则捕获“index.php”路径来防止这种情况:

RewriteRule ^(index.php) - [L]

但我认为缺乏这一点不应该导致你的问题。也许在不同的 .htaccess 或 Web 服务器配置文件中有另一条规则在干扰?我问这个是因为我对以下内容没有任何问题:

# .htaccess
RewriteEngine On
RewriteRule ^(index.php) - [L]
RewriteRule ^(.*)$ index.php?p=$1 [QSA,L]

注意:我取出了AddType x-mapp-php5 .php因为那在我的设置中不起作用。我不知道这是否与您的问题有关,但您可能希望将其包装在<IfModule>中以确保安全,如如何在我的开发机器上支持“AddType x-mapp-php5 .php”中所建议的那样

将它们结合在一起,这(也)对我有用:

# .htaccess
<IfModule !mod_php5.c>
AddType x-mapp-php5 .php
</IfModule>

RewriteEngine On
RewriteRule ^(index.php) - [L]
RewriteRule ^(.*)$ index.php?p=$1 [QSA,L]
于 2012-12-07T12:01:42.927 回答
0
RewriteEngine On
RewriteRule ^(.*)$ index.php?p=$1 [QSA,L]

我已经测试和工作

于 2012-12-07T11:50:12.803 回答