我的大部分页面(第1,2,3页)不需要通过PHP解析,但是,第4页和第5页都是如此。对于PHP解析的页面,我希望用最多(3)个目录(page,g1和g2)重写URL。希望下表能说明这一点。
http://mydomain.com/ => http://mydomain.com/page1.html
http://mydomain.com/page1 => http://mydomain.com/page1.html
http://mydomain.com/page2/ => http://mydomain.com/page2.html
http://mydomain.com/page3 => http://mydomain.com/page3.html
http://mydomain.com/page4 => http://mydomain.com/main.php?page=page4
http://mydomain.com/page4/x/ => http://mydomain.com/main.php?page=page4&g1=x
http://mydomain.com/page4/x/y => http://mydomain.com/main.php?page=page4&g1=x&g2=y
http://mydomain.com/page5/ => http://mydomain.com/main.php?page=page5
在PHP解析时我在重写URL方面取得了一些进展,但是,我不知道如何处理确定如何区分重定向到其关联的HTML文件的那些文件以及重定向到索引的文件。 PHP。任何帮助将不胜感激。
Options +FollowSymLinks -indexes
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -l
RewriteRule ^ - [L]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ ?page=$1&g1=$2&g2=$3 [L,QSA]
RewriteRule ^([^/]+)/([^/]+)/?$ ?page=$1&g2=$2 [L,QSA]
RewriteRule ^([^/]+)/?$ ?page=$1 [L,QSA]
</IfModule>
答案 0 :(得分:0)
我认为您需要添加的是PHP RewriteRule
以上的这一行:
RewriteRule ^(page[123])/?$ $1.html [L,QSA]
你可以尝试一下,看看它是否有效吗?
答案 1 :(得分:0)
我认为您可以使用route在PHP脚本中执行此操作。
例如,在index.php
中,您可以写这个
<?php
$filename = $_REQUEST['page'];
if(file_exists($filename.".html")){
//display html
require_once($filename.".html");
}else if(file_exists($filename.".php")){
//run your script
require_once($filename.".php");
}
?>