Mar*_*rco 4 php apache xampp mod-rewrite
我有一个简单的mod_rewrite规则,允许我将任何非实际文件或目录的请求重定向到index.php文件
Options +SymLinksIfOwnerMatch
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
Run Code Online (Sandbox Code Playgroud)
在PHP文件中我把这个简单的代码来处理这个导航
<?php
$navString = $_SERVER['REQUEST_URI']; // Returns "/Mod_rewrite/edit/1/"
$parts = explode('/', $navString); // Break into an array
// Lets look at the array of items we have:
print_r($parts);
?>
Run Code Online (Sandbox Code Playgroud)
我的开发环境是XAMPP和Windows 7 - 64位httpd.conf文件
<Directory />
Options FollowSymLinks
AllowOverride All
Order deny,allow
Deny from all
</Directory>
<Directory "C:/xampp/cgi-bin">
AllowOverride All
Options None
Order allow,deny
Allow from all
</Directory>
Run Code Online (Sandbox Code Playgroud)
我的问题是,当我将任何变量传递给脚本时,例如
http://locahost/test/somethinghere/andhere
Run Code Online (Sandbox Code Playgroud)
它将我重定向到本地主机默认页面
http://locahost/xampp
Run Code Online (Sandbox Code Playgroud)
mat*_*ict 11
以下是如何在xampp中启用.htaccess mod_rewrite的说明.
在文本编辑器中打开并编辑C:\ xampp\apache\conf\httpd.conf
找到包含的行
#LoadModule rewrite_module modules/mod_rewrite.so
Run Code Online (Sandbox Code Playgroud)
和(取消注释)更改为
LoadModule rewrite_module modules/mod_rewrite.so
Run Code Online (Sandbox Code Playgroud)查找所有出现的
AllowOverride None
Run Code Online (Sandbox Code Playgroud)
并改为
AllowOverride All
Run Code Online (Sandbox Code Playgroud)重启xampp
那就是你应该好好去.
帮助:http://www.leonardaustin.com/blog/technical/enable-mod_rewrite-in-xampp/
解决了我刚刚将文件夹添加到 .htaccess 并删除选项 +SymLinksIfOwnerMatch
RewriteBase /test/
Run Code Online (Sandbox Code Playgroud)