【发布时间】:2011-12-17 13:40:15
【问题描述】:
我在使用 codeigniter 和 .htaccess 时遇到问题,我一直在这里寻找答案,但找不到,所以我会感谢任何帮助 :-)
在我的 index.php 中,第一行是这个:
echo var_dump($_SERVER['REQUEST_URI']);
die();
我的 .htaccess 是这个:
ErrorDocument 404 /error
# Set default charset
AddDefaultCharset utf-8
RewriteEngine On
# From non-www to www
RewriteCond %{HTTP_HOST} ^paravegetarianos\.com$ [NC]
RewriteRule ^(.*)$ http://www.paravegetarianos.com/$1 [R=301,L]
# General
RewriteBase /
RewriteCond %{REQUEST_URI} !^(.+)\.(js|css|gif|png|jpg|jpeg|bmp|swf|txt|xml|htc|pdf|xls|doc|ico)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L,QSA]
当我把浏览器放到这个网址时:
www.paravegetarianos.loc/comunidad/jonaypelluz/albums/danna/ca_1
它将重定向到:
http://www.paravegetarianos.loc/danna
它会打印出来:
string '/danna' (length=6)
这是 access.log 中的一行:
127.0.0.1 - - [28/Oct/2011:21:56:12 +0200] "GET /danna HTTP/1.1" 200 123
我想我的重写规则不能正常工作 :-) 谢谢!
【问题讨论】:
-
当您将
www.paravegetarianos.loc/comunidad/jonaypelluz/albums/danna/ca_1输入浏览器时,您期待的是什么? -
你可能没有告诉我们完整的故事。使用此处描述的 index.php 和 .htaccess 文件,在干净且相对标准的 Web 服务器配置中,基本的前端控制器按预期工作并打印: string '/comunidad/jonaypelluz/albums/danna/ca_1' (length=40 ) 符合预期。您不需要 var_dump 之前的回声。这里没有任何东西是 CodeIgniter 特定的,所以你有没有遗漏一些东西,你有没有关于 web 服务器配置的详细信息?
-
在同一个 lcalhost 中使用一个简单的 php 和我之前写的 .htaccess 但它不使用 codeigniter .. 这是 vhost
<VirtualHost *:80> ServerAdmin ad@vgs.loc DocumentRoot "E:/workspace/paravegetarianos" ServerName paravegetarianos.loc ServerAlias *.paravegetarianos.loc <Directory "E:/workspace/paravegetarianos"> Options Indexes FollowSymLinks Includes ExecCGI AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost>我想知道是什么让 url 重定向到 /danna 如果它与 htaccess 相关或其他我想念的东西谢谢! :)
标签: .htaccess codeigniter mod-rewrite url-rewriting rewrite