Php 用.htaccess重写URL?
我正试图重写一个url,但似乎无法实现 我只想要一个工作的例子,这样我就可以移动到我的网站的所有页面 所以我有这个链接:Php 用.htaccess重写URL?,php,apache,.htaccess,mod-rewrite,Php,Apache,.htaccess,Mod Rewrite,我正试图重写一个url,但似乎无法实现 我只想要一个工作的例子,这样我就可以移动到我的网站的所有页面 所以我有这个链接: www.domain.com/article.php?id=1 我可以将其更改为: www.domain.com/article/1/ 现在没关系,稍后我将用文章标题替换数字 这是我的.htaccess文件中的内容: RewriteEngine On # Turn on the rewriting engine RewriteRule ^article\.ph
www.domain.com/article.php?id=1
我可以将其更改为:
www.domain.com/article/1/
现在没关系,稍后我将用文章标题替换数字
这是我的.htaccess文件中的内容:
RewriteEngine On # Turn on the rewriting engine
RewriteRule ^article\.php\?id=([0-9]+)$ article/$1/
有什么问题吗?我听说如果使用FTP在服务器上保存,.htaccess文件需要使用ASCII格式,但我不知道怎么做,因为我自己创建了它。在重写规则中,您无法匹配查询字符串,您需要在以下条件下匹配
%{query\u string}
:
RewriteEngine On # Turn on the rewriting engine
RewriteCond %{QUERY_STRING} ^id=([0-9]+)$
RewriteRule ^article\.php$ article/%1/? [L]
这会在内部将您的请求重写为/article/1/
。浏览器仍将看到旧的URL
您更希望的是与请求匹配:
RewriteEngine On
RewriteCond %{THE_REQUEST} \ /+article\.php\?id=([0-9]+)
RewriteRule ^ /article/%1/? [L,R=301]
RewriteRule ^article/([0-9]+)/?$ /article.php?id=$1 [L,QSA]
实际上,你是在倒退
RewriteRule ^article/([0-9]+)$ /article.php?id=$1
你完全是在倒转。RewriteRule^article/([0-9]+)$/article.php?id=$1语法是
RewriteRule(IncomingPath.*)LocalPath?$1
oh。。。lol我的错误xD但什么也没发生:将我的加号隐藏在错误的位置,编辑。代码有效:感谢您的帮助,但什么也没发生…?:(秒代码起作用,第一个不起作用。但是,使用秒代码我得到了一个404页面…是的,我看到了错误,并纠正了它,但它给了我一个404错误页面。@th3lmuuuu90当你转到/article.php?id=1
时,你得到的是404?@th3lmuuuuu90还是你的例子中的一切都是/articles?id=1
?