删除URL的某些部分

时间:2017-01-04 13:50:33

标签: .htaccess mod-rewrite

我有一个网站,我有以下网页:

domain.com/?p=settings

domain.com/?p=daily

我正在寻找重写?p=部分,所以它就像

domain.com/settings

到目前为止,我已尝试将其添加到htaccess文件中:

RewriteRule ^([^\.]+)$ $1?p= [NC,L]

但它没有奏效。

此外,我试过从谷歌看,但找不到任何。

我尝试了其他RewriteRule,但它们也没有用。

2 个答案:

答案 0 :(得分:0)

RewriteRule不包含查询字符串。它可作为单独的变量enter link description here

使用
  

模式最初将与主机名和端口之后以及查询字符串之前的URL部分匹配(例如“/app1/index.html”)。这是(%-decoded)URL路径。

所以以下内容不起作用。

  

RewriteRule ^([^.]+)$ $1?p= [NC,L]

你需要像

这样的东西
RewriteCond %{QUERY_STRING} ^(\w+)=(\w+)$
RewriteRule ^/ %2?

结帐Apache Mod ReWrite Wiki并向下滚动到“使查询字符串成为路径的一部分”

答案 1 :(得分:0)

您的尝试已接近,您需要在.htaccess

中使用此功能
RewriteEngine On
RewriteRule ^([^/]*)$ /?p=$1 [L]

确保在测试之前清除缓存。