我正在尝试将所有请求重定向到index.php并在页面上显示URL。
.htaccess文件;
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]
index.php文件;
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="assets/libs/js/jquery-1.11.3.min.js"></script>
<script type="text/javascript">
$(function() {
document.getElementById("body").innerHTML = window.location.pathname;
})();
</script>
</head>
<body id="body"></body>
</html>
当我进入localhost / test时,一切运行正常,页面上会显示“/ test”,但是,如果我转到localhost/test/anythinghere
,页面上不会显示任何内容。我希望发生的一个示例:如果我转到"/test/anything/you/are/cool"
,则会在页面上显示localhost/test/anything/you/are/cool
。
答案 0 :(得分:0)
因为你把它放在.htaccess中,而且只影响文件夹......你必须把它放在/etc/apache2/sites-available/your-site.conf
中<VirtualHost *:8888 *:80>
DocumentRoot /var/www/help/
ServerName help.com
<Directory /var/www/help/>
Options FollowSymLinks
AllowOverride All
AddDefaultCharset utf-8
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.php/$1 [L]
</Directory>
</VirtualHost>
检查我的重写规则。
我说我的重写...“如果你找不到文件夹或文件,请转到index.php”。这是有道理的,因为我把它放在虚拟主机......
你正试图这样做,但.htaccess控制他的文件夹。
答案 1 :(得分:0)
你可以试试.htaccess Regex,Matt。它对我有用:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]