Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 用于动态页面的apachemod重写_Php_Regex_Apache_Url_Mod Rewrite - Fatal编程技术网

Php 用于动态页面的apachemod重写

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

我有一个问题与我的修改重写规则,我写了我的网站,似乎没有什么变化,因为我的网页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.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个域。谢谢,我使用了这个规则,现在发生的事情是,如果我键入url
www.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