如何从网址中删除文件和参数名称,但保留参数值?

时间:2019-03-27 13:08:12

标签: .htaccess

我有这个网址:

https://website.com/pages/page.php?id=23

我想把它变成:

https://website.com/pages/23

我尝试了以下代码:

RewriteEngine On
RewriteBase /pages/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ page.php?id=$1 [L]

哪个工作。但是我在此/pages文件夹下有一些文件,需要将其视为常规页面。例如:

https://website.com/pages/login.php

但这被当作ID并尝试重定向到:

https://website.com/pages/page.php?id=login

我尝试将^(.*)$更改为^([0-9]+)$,但是它不起作用。

在我的根文件夹中,我还有另一个.htaccess文件,该文件从所有文件中删除了.php扩展名。拥有两个单独的.htaccess文件是不好的做法吗?如果是这样,我如何将它们结合起来?

.htaccess文件如下:

ErrorDocument 404 /error/404.php

RewriteEngine  on

RewriteCond %{REQUEST_URI} !\.php$ [NC]
RewriteCond %{REQUEST_URI} [^/]$
RewriteRule ^(.*)$ $1.php [L]

所以我的问题是:

  • 如何更改代码以仅允许将“ / pages /”之后的ID重写为新的URL?
  • 如何将两个.htaccess文件合并为一个文件,并将其放置在哪里?

0 个答案:

没有答案