我将网站的大部分公共内容保存在名为“pages”的文件夹中,在那里我有每个页面的文件夹,然后在每个页面中我都有每种类型内容的文件夹。
编辑:重新编写它以使其更容易理解。
所以我的典型网址是:http://www.example.co.uk/folderName/folderName/folderName/fileName.php
但我希望它显示如下:http://www.example.co.uk/fileName
我还需要使用URL来处理卡在其末尾的PHP变量,如下所示:http://www.example.co.uk/fileName?phpVar=1
我知道这是可能的,因为我看到它到处都是。 :L
答案 0 :(得分:3)
也许这个?
# Turn mod_rewrite on
RewriteEngine On
# If the request is not for a valid file
RewriteCond %{REQUEST_FILENAME} !-d
# If the request is not for a valid directory
RewriteCond %{REQUEST_FILENAME} !-f
# Rewrite /filename to /pages/filename/pages/filename.php
RewriteRule ^(.+)$ /pages/$1/pages/$1.php [L]
答案 1 :(得分:0)
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^fileName1/?$ folderName/folderName/folderName/fileName1.php [L]
RewriteRule ^fileName2/?$ folderName/folderName/folderName/fileName2.php [L]
应该做你想要的。假设您希望用户将http://example.com/about.php
视为http://example.com/about
。
添加RewriteCond %{REQUEST_FILENAME} !-d
可能也是必要的,但您的说明并不清楚。
要让您的主页始终在网址中显示“主页”,您需要在索引文件中使用以下内容:
if ($_SERVER['REQUEST_URI'] == '/index.php' or $_SERVER['REQUEST_URI'] == '/') {
header('Location: http://'.$_SERVER['HTTP_HOST'].'/home');
}
然后将其添加到.htaccess文件中:
RewriteRule ^home$ index.php [L,QSA]