小编Lex*_*ius的帖子

将Apache升级到2.4后,内部URL重写不再有效

我需要在内部重写基本URL,以便它不是/被映射到/index.php(默认行为),而是转到另一个名为contents.php的脚本.我在doc root中有一个简单的.htaccess:

RewriteEngine on
RewriteRule ^/?$ /contents.php?id_cat=0 [L]
Run Code Online (Sandbox Code Playgroud)

这在Apache 2.2上运行良好,不再适用于Apache 2.4.6.现在它被忽略了,默认情况下最终会调用/index.php脚本.

但是,如果我添加Relocate标志:

RewriteEngine on
RewriteRule ^/?$ /contents.php?id_cat=0 [R,L]
Run Code Online (Sandbox Code Playgroud)

...它确实有效,但它暴露了我不想要的重写URL.

我尝试使用PT(passthrough)标志[PT,L],[END]但没有运气.

我错过了什么?

编辑:我启用了重写的跟踪日志记录,这是我为单个请求获得的:

[Sat Nov 16 17:43:22.021036 2013] [rewrite:trace3] [pid 5895] mod_rewrite.c(468): [client 127.0.0.1:55297] 127.0.0.1 - - [bacityapartments.localhost/sid#7f7e3b748400][rid#7f7e3b67b0a0/initial] [perdir /var/www/bacityapartments/] strip per-dir prefix: /var/www/bacityapartments/
->
[Sat Nov 16 17:43:22.021075 2013] [rewrite:trace3] [pid 5895] mod_rewrite.c(468): [client 127.0.0.1:55297] 127.0.0.1 - - [bacityapartments.localhost/sid#7f7e3b748400][rid#7f7e3b67b0a0/initial] [perdir /var/www/bacityapartments/] applying pattern '^/?$' to uri ''
[Sat Nov 16 17:43:22.021087 2013] [rewrite:trace2] …
Run Code Online (Sandbox Code Playgroud)

apache .htaccess mod-rewrite

17
推荐指数
2
解决办法
3万
查看次数

标签 统计

.htaccess ×1

apache ×1

mod-rewrite ×1