【发布时间】:2013-09-12 00:12:30
【问题描述】:
所以首先我有一个自定义 url 重写,它将请求变量发送到 php 脚本
重写规则如下:
RewriteRule ^([\w\/-]+)(\?.*)?$ test/index.php?slug=$1 [L,T=application/x-httpd-php]
因此,如果您访问 domain.com/slug-text 之类的内容,它会将 slug-text 发送到位于名为 test 的文件夹中的 index.php。
我希望我的所有网址看起来像 domain.com/slug-text.html,但 slug-test 变量仍应发送到 index.php 文件。
和
我想不通的是重定向。我希望将所有旧网址从 domain.com/slug-text 或 domain.com/slug-text/ 重定向到 domain.com/slug-text.html 和 slug-text 发送到位于 test 文件夹中的 index.php 文件。
搜索了很多,但在互联网上的任何地方都找不到这个问题的答案。
谢谢大家的帮助。
更新: 我的新代码是:
RewriteEngine On
Options +FollowSymlinks
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-l
RewriteRule ^(([\w/\-]+)?[\w-])(?!:\.html)$ http://domain.com/$1\.html [L,R=301]
RewriteRule ^(([\w/\-]+)?[\w-])(/|\.html)?$ test/index.php?slug=$1 [L]
domain.com/slug-text/ 不会被重定向到 domain.com/slug-text.html
domain.com/slug-text 按预期工作,重定向到 domain.com/slug-text.html
我需要改变什么?
【问题讨论】:
标签: php apache .htaccess redirect mod-rewrite