如何在PHP中为MVC目的重写url

时间:2013-07-31 11:33:54

标签: php apache .htaccess mod-rewrite

这在localhost上运行正常:

#The RewriteEngine directive enables or disables the runtime rewriting engine.
RewriteEngine On

#This won't allow any folder to be accessible  if it's not having an index.php file
Options All -Indexes

#This will redirect user to http://localhost/awe/ if 404 or 403 error comes
ErrorDocument 404 http://192.168.1.6/app/
ErrorDocument 403 http://192.168.1.6/app/

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]

同样在Godaddy.com服务器上给出了错误:Error 500

当我删除Options All -Indexes时它用来向我显示第一页,因为index.php存在但不显示内部网页并显示404错误,因为它是在Bootstrap下定义的。请注意需要做什么。

此外,我已将其放入我的一个子域和一个文件夹中:所以我的应用程序的路径是这样的:

http://mysubdomain.mywebsite.com/myprojectname/app

所以我的.htaccess文件只放在此文件夹中http://mysubdomain.mywebsite.com/myprojectname/app

1 个答案:

答案 0 :(得分:0)

我认为您很可能会从GoDaddy收到500错误,因为您的404处理路线的IP和路径无效,并且您碰到了404,然后一切都崩溃了。想一想500会破坏某个东西,而404则认为它不存在。同样,您还没有为重写定义基础,这可能也是一个问题。

这是我的建议,研究一些经过战役测试且已知可以100%正常运行的htaccess规则,然后从那里开始构建。

我建议存在中使用最广泛的... https://codex.wordpress.org/htaccess

他们也有子文件夹和子域的示例。