【问题标题】:Remove certain part of URL删除 URL 的某些部分
【发布时间】:2017-01-05 20:44:05
【问题描述】:

我有一个网站,其中有如下页面:

domain.com/?p=settings

domain.com/?p=daily

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

domain.com/settings

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

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

但它没有奏效。

我也尝试过从 Google 查找,但找不到任何内容。

我尝试过其他的 RewriteRule,但它们也不起作用。

【问题讨论】:

标签: .htaccess mod-rewrite


【解决方案1】:

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

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

所以下面的行不通。

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

你需要类似的东西

RewriteCond %{QUERY_STRING} ^(\w+)=(\w+)$
RewriteRule ^/ %2?

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

【讨论】:

    【解决方案2】:

    你的尝试很接近,你需要在你的.htaccess中使用它:

    RewriteEngine On
    RewriteRule ^([^/]*)$ /?p=$1 [L]
    

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

    【讨论】:

      猜你喜欢
      • 2019-01-18
      • 2013-09-21
      • 2019-06-18
      • 1970-01-01
      • 2018-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-19
      相关资源
      最近更新 更多