.htaccess删除具有多个参数的漂亮url的php扩展
我现在已经修改了.htaccess文件,删除了我网站的.php扩展名。我也有一个规则,有一个漂亮的网址。然而,我的问题是我不确定如何添加第二个参数。此外,我想知道如果没有设置这些参数,规则是否有问题 例如,现在我的规则将把mywebsite.com/index.php改为mywebsite.com,mywebsite.com/login.php改为mywebsite.com/login,mywebsite.com/index.php?week=1改为mywebsite.com/1 但是,我现在添加了一个新参数,我的url现在将是mywebsite.com/index.php?page=a?week=1,我希望它更改为mywebsite.com/a/1,但是“week”或“page”参数并不总是要设置。所以它有时可能只是index.php?week=1或index.php?page=a,或者两者都可以设置 以下是我目前的规则:.htaccess删除具有多个参数的漂亮url的php扩展,php,.htaccess,Php,.htaccess,我现在已经修改了.htaccess文件,删除了我网站的.php扩展名。我也有一个规则,有一个漂亮的网址。然而,我的问题是我不确定如何添加第二个参数。此外,我想知道如果没有设置这些参数,规则是否有问题 例如,现在我的规则将把mywebsite.com/index.php改为mywebsite.com,mywebsite.com/login.php改为mywebsite.com/login,mywebsite.com/index.php?week=1改为mywebsite.com/1 但是,我现在添
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [NC,L]
RewriteRule ^([0-9]+)$ index.php?week=$1
RewriteRule ^([0-9]+)/$ index.php?week=$1
我想问的可能吗?从你对我问题的回答(见
评论)来看,页面仅为字母,而周仅为数字,这使得它们可以区分。因此,您不必通过添加更高级别来区分这两种情况来修改URL方案
也就是说,解决您的问题的有效方法是:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ /$1.php [L]
# /digit/ for "week" only
RewriteRule ^([0-9]+)/?$ /index.php?week=$1 [L]
# /alpha/ for "page" only
RewriteRule ^([a-z]+)/?$ /index.php?page=$1 [NC,L]
# mix of both, order is /page/week/
RewriteRule ^([a-z]+)/([0-9]+)/?$ /index.php?page=$1&week=$2 [NC,L]
您也可以试试这个
RewriteEngine on
本周:
RewriteRule ^index/(\d+)$ index.php?week=$1 [NC,L]
第页:
RewriteRule ^index/(\w+)$ index.php?page=$1 [NC,L]
对于周和页:
RewriteRule ^index/(\d+)/(\w+)$ index.php?week=$1&page=$2 [NC,L]
您别无选择,只能调整url方案以区分这两种情况(除非page
仅为字母,而week
仅为数字,因为您可以在匹配中区分它们)该页面仅为字母和周数当我尝试转到mysite.com/40而不是转到week=40时,我发现一个错误404未找到对象。嗯,可能没有更改您的查看页面中的链接。请检查它