Php 用于动态页面的apachemod重写
我有一个问题与我的修改重写规则,我写了我的网站,似乎没有什么变化,因为我的网页URL加载与以前一样,如果有人可以看看它,让我知道如果有任何问题,它将非常感谢,谢谢 重写规则Php 用于动态页面的apachemod重写,php,regex,apache,url,mod-rewrite,Php,Regex,Apache,Url,Mod Rewrite,我有一个问题与我的修改重写规则,我写了我的网站,似乎没有什么变化,因为我的网页URL加载与以前一样,如果有人可以看看它,让我知道如果有任何问题,它将非常感谢,谢谢 重写规则 RewriteEngine On RewriteRule ^([^/]*)/$ /index.php?art_id=$1 [L] URL http://www.test.com/index.php?art_slug=test 期望的结果 http://www.test.com/test 应该有用:)通过httpd.co
RewriteEngine On
RewriteRule ^([^/]*)/$ /index.php?art_id=$1 [L]
URL
http://www.test.com/index.php?art_slug=test
期望的结果
http://www.test.com/test
应该有用<代码>:)通过
httpd.conf
启用mod_rewrite和.htaccess,然后将此代码放在文档根目录下的.htaccess
中:
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
# to externally redirect from /index.php?art_slug=test to /art_slug/test
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+/(?:index\.php|)\?([^=]+)=([^\s]+) [NC]
RewriteRule ^ /%1/%2? [R=302,L]
# to internally forward from /art_slug/test to /index.php?art_slug=test
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^([^/]+)/(.+)$ /index.php?$1=$2 [L,QSA]
确认其工作正常后,将R=302
更换为R=301
。在测试mod_重写规则时,避免使用R=301
(永久重定向)
RewriteEngine On
RewriteRule (.*)/$ search.php?keyword=$1
应该有效。:) 您是否打算让get参数从art_slug变为art_id,还有一个更常见的问题是确保.htaccess正在处理中,如果正在处理.htaccess,请尝试在.htaccess文件的顶部放置一些垃圾文本,然后服务器会出现500个错误。@Orangepill god我现在觉得自己像个白痴,哈哈哈重写规则显然应该是art\u slug
而不是art\u id
我不知道为什么要放置id哈哈,谢谢,这将很可能解决我的问题,因为我的.htaccess工作,因为我有一个新的重定向之前,该代码的工作没有问题,但感谢让我看了一遍代码,哈哈,这是“动态”。这是“动态”吗?你确定你的服务器支持mod_重写吗?你检查过了吗?我想是的,因为我有另一个重写规则,将域重定向到1个域。谢谢,我使用了这个规则,现在发生的事情是,如果我键入urlwww.test.com/test
,它会工作,但是如果我键入www.test.com?art_slug=test
,url保持为www.test.com?art_slug=test
,谢谢你的帮助!那么我现在会像这样做我的链接吗
最好将URL保持为/test
,但其他规则失败,因为您有http://www.test.com/?art_slug=test
而不是http://www.test.com/index.php?art_slug=test
非常感谢您为我澄清这一点!另外,对于我的URL,是否可以执行类似于www.test.com/art\u slug/test
的操作,或者我是否应该将其留在www.test.com/test
,再次感谢!太棒了,谢谢,对不起,我习惯于在本地主机上工作而不是在实际的服务器上工作,再次感谢这就是我需要的所有帮助,你太棒了!
RewriteEngine On
RewriteRule (.*)/$ search.php?keyword=$1