【问题标题】:Mod Rewrite goes in conflict with Wordpress rewrite rules?Mod Rewrite 与 Wordpress 重写规则冲突?
【发布时间】:2015-03-23 07:45:57
【问题描述】:

在我的网站中有一个带有简码的页面,它在打印内容之前读取 3 个参数。页面如下所示:

/collaboratori?collaboratore=6&n=Mario&c=Rossi

我想将其转换为 SEO 友好的网址,如下所示:

/profilo-collaboratore/6/Mario/Rossi

我正在使用以下 Mod 重写规则:

RewriteEngine On
RewriteRule ^profilo-collaboratore/([^/]*)/([^/]*)/([^/]*)$ /collaboratori?collaboratore=$1&n=$2&c=$3 [L]

但是当我尝试加载 /profilo-collaboratore/6/Mario/Rossi 时,Web 服务器返回 404 错误代码,而 Wordpress 向我显示 404 错误页面

我的 .htaccess 是:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^profilo-collaboratore/([^/]*)/([^/]*)/([^/]*)$ /collaboratori?collaboratore=$1&n=$2&c=$3 [L]
</IfModule>

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

我哪里错了?

非常感谢

【问题讨论】:

  • 网址是否应该由 Wordpress 处理(例如,它是否是 wordpress 插件)?
  • 是的,这是我写的插件
  • Wordpress 依赖地址栏中的 url,而不是重写到的 url。这意味着在您的 .htaccess 文件中使用 mod_rewrite 重写 url 没有任何效果。
  • 我该怎么做?你有例子吗?

标签: wordpress apache .htaccess mod-rewrite friendly-url


【解决方案1】:

看起来正则表达式有问题。

试试下面的规则,它应该可以工作。

RewriteRule ^/profilo-collaboratore/(\w+)/(\w+)/(\w+) /collaboratori?collaboratore=$1&n=$2&c=$3 [NC]

我通过添加[R] 标志来测试它,以便在重定向期间查看重写的 url。

$ curl -IL http://localhost/profilo-collaboratore/6/Mario/Rossi
HTTP/1.1 302 Found
Date: Sat, 24 Jan 2015 15:03:24 GMT
Server: Apache/2.4.10 (Unix) OpenSSL/1.0.1e
Location: http://localhost/collaboratori?collaboratore=6&n=Mario&c=Rossi
Content-Type: text/html; charset=iso-8859-1

HTTP/1.1 404 Not Found
Date: Sat, 24 Jan 2015 15:03:24 GMT
Server: Apache/2.4.10 (Unix) OpenSSL/1.0.1e
Last-Modified: Wed, 24 Dec 2014 08:11:27 GMT
ETag: "13f-50af1d6a1b74d"
Accept-Ranges: bytes
Content-Length: 319
Content-Type: text/html

【讨论】:

  • 嗨 Kannan,谢谢,但它不起作用。 @Sumurai8 之前怎么说,它在其引擎中与 Wordpress 重写规则发生冲突。这不是使用.htaccess 可以解决的问题。如果我能找到解决方案,我会更新问题
猜你喜欢
  • 1970-01-01
  • 2015-09-22
  • 1970-01-01
  • 1970-01-01
  • 2011-07-20
  • 1970-01-01
  • 2012-06-09
  • 2021-08-24
  • 1970-01-01
相关资源
最近更新 更多