好的......我的头衔有点夸张......
我的网站是用PHP构建的,我正在尝试“require_once”的所有文件都没有被加载。我改变的唯一文件是我的.htaccess文件。我不知道关于.htaccess的事情,我所拥有的仅仅是搜索网络。怎么了?感谢您提前提供任何帮助。
RewriteEngine on
<Files 403.shtml>
order allow,deny
allow from all
</Files>
ReWriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
ReWriteRule !index.php index.php [L]
另外,如果我注释掉底部两行,我的网站效果很好。
答案 0 :(得分:1)
好吧,require_once
与.htaccess
文件无关:它是PHP指令,而不是Apache指令。您必须正确设置文件的include_path和以确保这些目录和文件可以访问(即,设置了正确的权限)。
如果您显示失败的require
收到的错误消息,那么就如何解决此问题提供具体的建议要简单得多。
更新如果您需要将.php文件的所有非AJAX请求重定向到index.php
,您的.htaccess
应该是这样的:
RewriteEngine on
RewriteCond %{HTTP:x-requested-with} ^XMLHttpRequest$
RewriteRule . - [L]
RewriteCond %{REQUEST_FILENAME} !-d
ReWriteRule .php$ index.php
这基本上意味着以下内容:“所有AJAX请求 - 根据您的需要,所有非AJAX请求,如果您没有使用某个目录并以.php结束 - 请转到index.php”。< / p>
如果不检查.php(或某些类似的检查),您将重定向到index.php
所有脚本加载程序;而且,除非你从某些外部CDN那里做到这一点,否则它不适合你的情况。 )
答案 1 :(得分:0)
尝试将最后两行更改为:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]
如果您希望您的网址看起来像这样(您可能会这样做):
http://yoursite.com/some/path/somewhere
然后将最后一行更改为:
RewriteRule ^([^/]*)(.*)$ index.php?first=$1&second=$2
如果这是您想要达到的目标,请确保如果您要尝试:
http://yoursite.com/about
实际上没有一个名为about的文件夹,这一行:
RewriteCond %{REQUEST_FILENAME} !-d
检查是否存在名称为“about”的文件夹,如果存在,则页面不会重定向,文件也是如此,请说:
http://yoursite.com/about.html
如果about.html确实存在,那么该页面将不会重定向。
希望这是有道理的。
如果您需要更多信息,http://jrgns.net/content/redirect_request_to_index似乎相当简洁且有用。