.htaccess删除具有多个参数的漂亮url的php扩展

.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 但是,我现在添

我现在已经修改了.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,或者两者都可以设置

以下是我目前的规则:

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未找到对象。嗯,可能没有更改您的查看页面中的链接。请检查它