【发布时间】:2014-02-13 06:43:49
【问题描述】:
我有一个非常简单的 RewriteRule,但我不知道为什么它不想工作。也许只是说累了,但有些东西似乎很不稳定。
我想将一个看起来像 http://mydomain.com/abc 的 URL 重定向到 http://mydomain.com/abc/index.php/xyz,但我不想更改 URL。
这是我的 .htaccess 的全部内容:
RewriteEngine On
RewriteBase /abc/
#redirect the homepage
RewriteRule ^$ index.php/msj [QSA,L]
当我这样做时,我得到“没有指定输入文件。”。如果我将 [QSA,L] 更改为 [R] 它可以工作,但它实际上会重定向 URL。
我误会了什么?
编辑:$_SERVER 的输出
array(34) { [
"PATH"]=> string(29) "/bin:/usr/bin:/sbin:/usr/sbin" [
"RAILS_ENV"]=> string(10) "production" [
"FCGI_ROLE"]=> string(9) "RESPONDER" [
"UNIQUE_ID"]=> string(24) "UxDcvK3suH0AABgWvXUAAAAj" [
"SCRIPT_URL"]=> string(1) "/" [
"SCRIPT_URI"]=> string(22) "http://themspress.org/" [
"dsid"]=> string(8) "25793844" [
"ds_id_25793844"]=> string(0) "" [
"DH_USER"]=> string(13) "juancommander" [
"HTTP_HOST"]=> string(14) "themspress.org" [
"HTTP_CONNECTION"]=> string(5) "close" [
"HTTP_ACCEPT"]=> string(74) "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" [
"HTTP_USER_AGENT"]=> string(120) "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36" [
"HTTP_ACCEPT_ENCODING"]=> string(17) "gzip,deflate,sdch" [
"HTTP_ACCEPT_LANGUAGE"]=> string(23) "en-US,en;q=0.8,es;q=0.6" [
"HTTP_COOKIE"]=> string(190) "OJSSID=Siy7xdofJurGtBcNUk1880; __utma=154159997.1153519437.1393351515.1393522373.1393598726.4; __utmc=154159997; __utmz=154159997.1393351515.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)" [
"SERVER_SIGNATURE"]=> string(0) "" [
"SERVER_SOFTWARE"]=> string(6) "Apache" [
"SERVER_NAME"]=> string(14) "themspress.org" [
"SERVER_ADDR"]=> string(15) "173.236.187.201" [
"SERVER_PORT"]=> string(2) "80" [
"REMOTE_ADDR"]=> string(14) "189.138.120.63" [
"DOCUMENT_ROOT"]=> string(51) "/home/juancommander/themspress.org/var/www/html/ojs" [
"SERVER_ADMIN"]=> string(24) "webmaster@themspress.org" [
"SCRIPT_FILENAME"]=> string(61) "/home/juancommander/themspress.org/var/www/html/ojs/index.php" [
"REMOTE_PORT"]=> string(5) "53719" [
"GATEWAY_INTERFACE"]=> string(7) "CGI/1.1" [
"SERVER_PROTOCOL"]=> string(8) "HTTP/1.1" [
"REQUEST_METHOD"]=> string(3) "GET" [
"QUERY_STRING"]=> string(0) "" [
"REQUEST_URI"]=> string(1) "/" [
"SCRIPT_NAME"]=> string(10) "/index.php" [
"PHP_SELF"]=> string(10) "/index.php" [
"REQUEST_TIME"]=> int(1393614012) }
【问题讨论】:
-
这是 CI 还是其他框架?
-
它的开放期刊系统。它使用 PHP。实际上,我在另一台具有相同设置的服务器上安装了另一个(尽管显然不完全相同)并且它在那里工作......
-
abc 是真实的目录吗?您的 htaccess 文件位于哪个目录?
-
如果你想传递到 php 处理程序,你可能需要在
RewriteRule上使用PTflag。 -
abc 是一个真实的目录,.htaccess 文件就在那个目录里面。
标签: apache .htaccess mod-rewrite