.htaccess 如何使用htaccess重写url?
我试图将我的url从“www.example.com/article.php?title=blub”重写为“www.example.com/blub” 但它不起作用.htaccess 如何使用htaccess重写url?,.htaccess,.htaccess,我试图将我的url从“www.example.com/article.php?title=blub”重写为“www.example.com/blub” 但它不起作用 RewriteEngine on RewriteRule (.*)\.html$ article.php?title=$1 这段代码可以工作,但只能使用html扩展名 但是,我不想使用这个扩展 提前感谢。这应该适合您: Options +FollowSymLinks -MultiViews RewriteEngine On Re
RewriteEngine on
RewriteRule (.*)\.html$ article.php?title=$1
这段代码可以工作,但只能使用html扩展名
但是,我不想使用这个扩展
提前感谢。这应该适合您:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /wiki/
# we don't want to rewrite existent directories
RewriteCond %{REQUEST_FILENAME} !-d
# we don't want to rewrite existent files
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)$ article.php?title=$1 [L]
代码的问题在于它不会检查文件是否存在,因此当您在没有\.html
的情况下重定向它时,它会进入一个循环,因为它不关心article.php
是否存在
通过评论,OP发现他的文件不在根文件夹中,正如他在问题
www.example.com/article.php?title=blub
中所述,而是在名为wiki
的子文件夹中。谢谢,这对我有点帮助,但仍然存在一个问题:它重写了所有不存在的页面。另一个问题是:新的URL在问号处被打断,因此“www.example.com/blub”重定向到“www.example.com/article.php”。同样值得指出的是,如果您的.htaccess
上有其他规则,您应该告诉我,因为它们可能会影响上述结果。也就是说,如果你没有其他规则的话。将您的article.php
重命名为articles.backup.php
,并创建一个新的article.php
文件,该文件的内容为
,以确保它不会像应该的那样向它传递任何参数,因此,我只能认为您的文章文件不知道如何处理它给出的参数。还要记住,上面的.htaccess
规则是使www.example.com/blub
工作,因此,如果您访问www.example.com/blub
,它应该在内部显示www.example.com/article.php?title=blub
,而不更改浏览器URL。否,php文件是正确的。错误:“未找到此服务器上未找到请求的URL/article.php”。该错误意味着您在domain.com/article.php
上没有article.php
,那么文件在哪里?