我正在MAMP上构建我的站点,几天后,我终于在我的遗嘱之后得到了一个.htaccess文件。但是现在当我上传到生活环境时,它的行为就不一样了!有不同的版本吗?是因为我文件中的错误,MAMP是自动处理的吗?
如果不是这些特殊文件,则使用默认的RewriteRule。scripts/images/mediacontent/services/robot.txt工作,但不工作(login.php,杂交瘤,博客)
#start
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
# main site
RewriteCond %{REQUEST_URI} !^/scripts/(.*\.js)$
RewriteCond %{REQUEST_URI} !^/styles/(.*\.css)$
RewriteCond %{REQUEST_URI} !^/images/(.*\.jpg|.*\.png|.*\.gif)$
RewriteCond %{REQUEST_URI} !^/mediacontent/(.*\.jpg|.*\.png)$ [NC]
RewriteCond %{REQUEST_URI} !^/services/(.*\.php)$
RewriteCond %{REQUEST_URI} !^/login\.php$
RewriteCond %{REQUEST_URI} !^/hybridauth/$
RewriteCond %{REQUEST_URI} !^/blog/$ [NC]
RewriteCond %{REQUEST_URI} !^/robot.txt$
RewriteRule (\w+) index.php?page=$1 [NC,L]发布于 2013-04-22 16:24:49
使用\w+,您不会捕获完整的请求,而只捕获其中的某些部分。
来自逸出序列
西西 任何“字”字 “单词”字符是任何字母、数字或下划线字符。
这意味着,不包括点.、斜杠/、连字符-或下划线_旁边的任何其他特殊字符。
从条件上看,您希望将所有现有文件和目录排除在规则之外。你可以用同样的方法
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ index.php?page=$0 [L]此规则捕获完整路径,包括任何特殊字符,并将其传递给index.php。但它也排除了所有真实的文件,如Javascript源文件、CSS文件、图像等等。
发布于 2013-04-22 18:04:02
删除所有.htaccess文件后,我注意到问题不在重写中。
我删除了服务器上的所有文件,并上传了一次,现在它开始工作了。
自我注意:使用一个好的FTP应用程序。
https://stackoverflow.com/questions/16151524
复制相似问题