我在本地以这种方式调用我的网站:
http://localhost:80/mysite/de/layer1/layer2/module
在.htaccess中我有:
RewriteEngine on
RewriteRule !^((css|js|images)/.*)$ index.php%{REQUEST_URI} [L, NE]
我尝试将其重写为:
http://localhost:80/mysite/index.php/de/layer1/layer2/module
知道那里有什么问题吗?
编辑:如果我只写这个,那就没有错误:
RewriteRule !^((css|js|images)/.*)$ index.php
但我想我需要这个%{REQUEST_URI}的东西!!
我的配置:Mac OS X 10.6 Snow Leopard,带有Apache,MySQL和PHP的MAMP 5.详细信息:
Apache 2.0.63
MySQL 5.1.37
PHP 4.4.9 & 5.2.10
APC 3.0.19 & APC 3.1.2
eAccelerator 0.9.5.3
XCache 1.2.2
phpMyAdmin 2.11.9.5 & phpMyAdmin 3.2.0.1
Zend Optimizer 3.3.3
SQLiteManager 1.2.0
Freetype 2.3.9
t1lib 5.1.2
curl 7.19.5
jpeg 7
libpng-1.2.38
gd 2.0.34
libxml 2.7.3
libxslt 1.1.24
gettext 0.17
libidn 1.15
iconv 1.13
mcrypt 2.5.8
YAZ 3.0.47 & PHP/YAZ 1.0.14
答案 0 :(得分:2)
我不太确定你想要什么,但这里有一个重写规则,他将传递给index.php所有不是index.php
的东西(以避免无限循环),/js/
,{{1} }和/images/
。
/css/
对于您的服务器错误,它可以是RewriteCond %{REQUEST_URI} !^/(index.php|css|images|js)/.*$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/index.php/$1 [L]
标志,可用于Apache版本> = 1.3.20
答案 1 :(得分:1)
这是Drupal用来完成类似任务的重写:
# Rewrite URLs of the form 'x' to the form 'index.php?q=x'.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]