apache - 您如何简单地将新的自定义重写添加到 wordpress 的 .htaccess 中而不会失败?

标签 apache wordpress .htaccess mod-rewrite

我为我的 wordpress 添加了一些额外的功能,以便我可以使用变量访问它并做额外的事情。

问题是,当我在 .htaccess 文件中将丑陋的动态链接转换为可爱的永久链接格式时,wordpress 会覆盖它/忽略它。我听说有一种方法可以做到这一点,但是我根据人们所说的尝试去做的方法仍然会返回 404 页面。我知道它指向的文件有效。

人们说的 2 种方式有效,但我对此并不满意:

1) 在#BEGIN wordpress 部分上方插入规则
2) 在某处使用 add_rewrite_rule() wordpress 函数

有没有人用这些方法成功过?或其他方法?

这是我的 .htaccess 文件的样子

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^/ref/(.*)$ /index.php?ref=1&sid=$1 [NC]
</IfModule>


# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /


RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]


</IfModule>

在我的主题 function.php 我也尝试添加:
add_rewrite_rule('/ref/(.*)$', 'index.php?ref=1&sid=$matches[1]','top');

没有成功。

我也尝试过@ WordPress + mod_rewrite 上的解决方案没有快乐。

请帮忙! :)

有任何想法吗?

最佳答案

这有效 - 我刚刚测试过 - 注意我在 RewriteRule 的末尾添加了一个 L

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteRule ^/ref/(.*)$ /index.php?ref=1&sid=$1 [NC,L]

#wp
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

关于apache - 您如何简单地将新的自定义重写添加到 wordpress 的 .htaccess 中而不会失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/741415/

相关文章:

php - .htaccess RewriteCond,其中 URI 不包含域

php - 在表单上下载 pdf 文件并提交

php - .htaccess 拒绝从脚本下载文件

PHP/Apache,htaccess 中的选项 +indexes 不适用于根目录

javascript - 如果 JavaScript 或 PHP 的计数器等于 0,有没有办法取消选中复选框?

php - Wordpress 上的特色帖子部分不会显示

apache - 如何在 google 容器引擎和 apache 设置中获取真实的客户 ip

java - 用于 Android 中网络通信的最佳包.. Java/Apache?

java - Apache http 发布示例

html - 在搜索过滤器中用图像替换文本