我想让网址像这样
mysite.com/language/page/somethingelse
始终在index.php
的同一文件中进行处理。
但仅适用于.php
个文件。我不想重定向.js
或.css
或.xml
,图片文件等。
另外,这个项目将在一个子文件夹中,这意味着它将在另一个内部,没有任何关系。因此,它可以这样访问:
mysite.com/extras/mydifferentproject/language/page/something else
所以我想.htaccess
文件夹中的mydifferentproject
文件需要这行吗?
RewriteBase extras/mydifferentproject/
答案 0 :(得分:2)
您可以将其设为.htacces
RewriteEngine On
RewriteRule ^(?!index\.php$). index.php [NS,L,DPI]
将会抓住.htacces
中所有URL's
所在的文件夹。为了获得路径并获取它是否在文件夹中并进一步处理它,这个功能将有所帮助。
function getPath($path){
$called = __FILE__;
$called_dir = str_replace("\\","/",pathinfo($called)["dirname"]);
$root = str_replace($_SERVER["DOCUMENT_ROOT"], "",$called_dir);
$from = '/'.preg_quote($root, '/').'/';
return preg_replace($from,"",$path,1);
}
getPath($_SERVER["REQUEST_URI"]);
这将为您提供它所在文件夹后面的字符串,因此它会排除它所在的文件夹。
.htacces :位于/folder
文件夹中
网址:example.com/folder/some/values
getPath()
index.php
中/some/values
函数的 结果 as它位于folder
文件夹中。
如果您的网址为example.com/index.html
,但.htacces
位于folder
,则行为正常。 (将加载index.html)
通过处理路径或使用它执行的任何操作来加载文件。在html
中加载请求文件时,请务必定义应加载文件的base
,否则将从上方输入path
并将其视为文件夹,不是价值或不应该看的东西。
实施例
<base href="/folder/">
答案 1 :(得分:0)
我可以完成以下任务仅发送.php
个文件到index.php ,如下所示:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* index.php [L,QSA]
现在我可以通过在浏览器的导航栏中写下他们的真实网址来访问图像和js,css,xml文件等。
进入 index.php 后,我正在使用Nytrix的函数来解析网址。