htaccess重写了url和phpGET方法



如果我更改了URL,如何管理GET方法?

我从更改了PHP网页的URL

website.com/article.php?id=1&name=NewStory

website.com/article/1/NewStory

.htaccess文件:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^article/([0-9]+)/([0-9a-zA-Z_-]+) article.php?id=$1&name=$2 [NC,L]

以前,构建URL很容易,因为你可以在URL中添加你的信息,比如:

article.php?id=1&name=NewStory

使用GET方法从URL获取信息也很容易,比如:

$articleID = $_GET['id'];
$articleName = $_GET['name'];

你能帮我提供一个解决方案来保留我用.htaccess文件更改的URL并管理GET方法吗?

如何使用GET方法从这样的URL获取信息?

website.com/article/1/NewStory

如何按照.htaccess文件编写URL?

谢谢!

这是因为您的新URL/article/1/NewStory当前通过Multiviews而不是通过RewriteRule指向/article.php文件

要修复此问题,您需要禁用Multiviews并删除RewriteCond %{REQUEST_FILENAME}.php -f条件,以检查是否存在要重写的PHP文件。

Options -Multiviews
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^article/([0-9]+)/([0-9a-zA-Z_-]+) article.php?id=$1&name=$2 [NC,L]

最新更新