如何使用.htaccess为多个参数创建干净的网址?

时间:2015-08-09 20:16:14

标签: apache .htaccess mod-rewrite configuration

我尝试为我的网站制作干净的URL。 所需的格式为:site / category / num example site / sport / 3

类别和页面都是可选参数。所以我有三条规则。问题是规则三。它只在第一次工作。

用户输入网站 - tule 1.好的。 用户导航和选择类别。规则2 ......好的。 用户导航并想要第2页。 (规则3)好的。 用户希望在第3页中看到更多项目(规则3)错误..

我得到参数site / category / category / 3并且navigatioin失败。现在我不知道为什么我会两次获得类别。

我的.htaccess文件几乎可以正常工作。

RewriteEngine On

RewriteCond %{REQUEST_URI} !(\.css|\.js|\.png|\.jpg|\.gif|robots\.txt)$ [NC]
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9]+)$ /index.php?page=$1 [L]

RewriteCond %{REQUEST_URI} !(\.css|\.js|\.png|\.jpg|\.gif|robots\.txt)$ [NC]
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)$ /index.php?category=$1 [L]

RewriteCond %{REQUEST_URI} !(\.css|\.js|\.png|\.jpg|\.gif|robots\.txt)$ [NC]
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9a-zA-Z_-]+)/([0-9]+)$ index.php?category=$1&page=$2 [NC,L]

1 个答案:

答案 0 :(得分:0)

尝试:

RewriteEngine On
RewriteCond %{REQUEST_URI} (\.css|\.js|\.png|\.jpg|\.gif|robots\.txt)$ [NC,OR]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

RewriteRule ^([0-9]+)/?$ /index.php?page=$1 [L]
RewriteRule ^([^/]+)/?$ /index.php?category=$1 [L]
RewriteRule ^([0-9a-zA-Z_-]+)/([0-9]+)/?$ /index.php?category=$1&page=$2 [NC,L]