【发布时间】:2016-11-07 23:31:40
【问题描述】:
目前,wordpress 安装使用 url,例如: http://example.com/test-page
它使用 URL 的“测试页”部分来查找要显示的页面。我的问题是我构建了一个自定义应用程序,该应用程序通过 PHP 包含插件加载到 wordpress 中。此应用程序依赖于 URL,例如 http://examples.com/test-page/title-of-page/id
我需要使用 mod_rewrite 来实现: http://example.com/test-page&title=$1&id=$2(因为测试页本身就是查询字符串的一部分)
我尝试了很多方法,搜索 SO,阅读 mod_rewrite 标志并测试不同的正则表达式解决方案。
这是我的尝试之一:
RewriteRule ^directory-listing/([^/]+)/([^/]+) /directory-listing&title=$1&id=$2 [L]
RewriteRule ^directory-listing/([^/]+) /directory-listing&title=$1 [L]
RewriteRule ^directory-listing$ /directory-listing [L]
现在整个 .htaccess:
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
## Custom ##
RewriteRule ^directory-listing/([^/]+)/([^/]+) /directory-listing&title=$1&id=$2 [L]
RewriteRule ^directory-listing/([^/]+) /directory-listing&title=$1 [L]
RewriteRule ^directory-listing$ /directory-listing [L]
## End Custom ##
#RewriteCond %{REQUEST_FILENAME} -f [OR]
#RewriteCond %{REQUEST_FILENAME} -d
#RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
我真的被困住了。我真的需要一些帮助。提前致谢!
【问题讨论】:
标签: wordpress apache .htaccess mod-rewrite