2012-03-06 56 views
0

我是新的.htaccess,我似乎有一些问题得到它来清理我的网址。.htaccess干净的网址与超过3个参数

site.com?p=article&id=3&read=article title 

我能够得到的第一个变量工作确定像site.com/articles。但是当我试图进一步的服务器说它不能找到它。我已经尝试了几种方法,其中没有一个似乎有效。

RewriteRule ^([a-zA-Z0-9]+)$ index.php?p=$1 
RewriteRule ^([a-zA-Z0-9]+)/$ index.php?p=$1 

这上面工作

我已经试过

RewriteRule ^([a-zA-Z0-9-z\-]+)(/([a-zA-Z0-9-z\-]+))?/?$ index.php?p=$1&i=$2 

RewriteRule ^([a-zA-Z0-9-z\-]+)/([a-zA-Z0-9-z\-]+)/([a-zA-Z0-9-z\-]+)/?$ index.php?p=$1&i=$2&read=$3 

最后2不工作。请帮助。谢谢

回答

0

让我们试试这样的事情吧?

RewriteEngine On 
RewriteRule ^([^/]*)/([^/]*)/([^/]*)$ /index.php?p=$1&id=$2&read=$3 [L] 
+0

您好,感谢您的帮助。你知道文章标题中是否有空格会影响阅读的方式吗?即阅读=等等等等等等......谢谢 – blackStar 2012-03-06 07:14:55

0

%{QUERY_STRING}是您正在查找的内容。

这是我使用了类似的情况:

RewriteRule ^/(.*) /index.php?r=/$1&%{QUERY_STRING} [L] 
+0

嗨,感谢您的帮助。你知道文章标题中是否有空格会影响阅读的方式吗?即&读=等等等等等等......谢谢 – blackStar 2012-03-06 07:15:13

+0

空间将被编码,并在浏览器中显示为%20,如果这就是你要求的,最好的做法是不要在URL中使用空格,我可能会用连字符替换它们如果可能的话。现在在我的Web浏览器中查看URL,stackoverflow也用连字符替换空格。 – 2012-03-06 07:18:30

+0

啊,好的,在php中使用类似str_replace的东西?我假设你的字符串中的r代表我的脚本中的p? – blackStar 2012-03-06 07:20:23