.htaccess 如何在htaccess中重写某些页面的url?

.htaccess 如何在htaccess中重写某些页面的url?,.htaccess,.htaccess,我试图显示不同的url,并在用户单击博客文章时使用.htcaccess将用户重定向到特定的url,但没有效果 假设url是:http://localhost/mySite/article.php?article_title=test-标题 然后我想将其显示为http://localhost/mySite/article/test-title 这是我当前的htcaccess文件: #turn on url rewriting RewriteEngine on #remove the need f

我试图显示不同的url,并在用户单击博客文章时使用.htcaccess将用户重定向到特定的url,但没有效果

假设url是:
http://localhost/mySite/article.php?article_title=test-标题

然后我想将其显示为
http://localhost/mySite/article/test-title

这是我当前的htcaccess文件:

#turn on url rewriting
RewriteEngine on

#remove the need for .php extention
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

#rewrite rule for blog
RewriteRule article/([A-Za-z0-9-]+) /mySite/article.php?article_title=$1
但由于某些原因,它没有重定向/显示正确的url。我没有得到任何错误


编辑 试着再次问我的问题并更好地解释它。假设url是

http://localhost/www.example.com/admin/editUser.php?user_id=126
我想重写url,如下所示:

http://localhost/www.example.com/admin/user/126
# redirect to .php-less link if requested directly
RewriteCond %{THE_REQUEST} ^[A-Z]+\s.+\.php\sHTTP/.+
RewriteRule ^(.+)\.php $1 [R=301,L]
那么我怎样才能做到这一点呢。我尝试使用网站检查修改后的url,但它不起作用。似乎它根本不适用于堆栈中任何已接受的答案

这是我的htaccess文件。它位于www.example.com的根目录中

#turn on url rewriting
Options +FollowSymlinks
RewriteEngine on

RewriteRule  ^user/([0-9]+)/?$ /editUser.php?user_id=$1 [NC,L] # Handle user edit requests
已启用Apache模块mod_rewrite。还添加了一个别名。仍然没有更改url。如果我尝试一些非常基本的东西,比如:

http://localhost/www.example.com/admin/user/126
# redirect to .php-less link if requested directly
RewriteCond %{THE_REQUEST} ^[A-Z]+\s.+\.php\sHTTP/.+
RewriteRule ^(.+)\.php $1 [R=301,L]
它很好用


为什么用户重定向不起作用?我做错了什么。

对于mysite目录中的文章url规则,可以这样尝试

RewriteRule ^article/([A-Za-z0-9-]+)$ article.php?article_title=$1 [QSA,NC,L]

您需要提及字符串的开始
^
和结束
$

请立即尝试。出于某种原因。它不会更改url。也没有错误好吧,我假设您在mysite目录中使用此规则以及上述书面规则。当您使用上述规则加载页面或出现空白页面时会发生什么情况。空白页面例如内部没有内容?