Home >Backend Development >PHP Tutorial >请教个伪静态的问题

请教个伪静态的问题

WBOY
WBOYOriginal
2016-06-23 13:35:20860browse

请教个伪静态的问题


我在弄那个whois查询的时候伪静态


http://whois.hangye5.com/womai.cn这个的


RewriteEngine on
Rewritebase /
ErrorDocument 404 /404.html
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?domain=$1 [QSA,PT,L]


用了这个是可以的


但是我现在想在上面弄多一个文件伪静态
whois.hangye5.com/sitemaps/sitemap1.html
whois.hangye5.com/sitemaps/sitemap2.html
whois.hangye5.com/sitemaps/sitemap3.html
这样的


不知道怎么弄,不知道怎么在里面添加内容
我自己添加的出问题了。


回复讨论(解决方案)

不知道你的真是路径,根据你原先的写法,只能写个大概

^(.*)/(\w+)/(\w+).html$ index.php?domain=$1&p1=$2&p2=$3

根据 whois.hangye5.com/sitemaps/sitemap1.html 这个链接来说
p1=sitemaps,p2=sitemap1
p1,p2是对应你应用的参数,你自己修改

http://whois.hangye5.com/sitemaps/sitemap.php?domain=1
没有伪之前是上面这样的
RewriteEngine on
ErrorDocument 404 /404.html
#RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ ./index.php?domain=$1 [QSA,PT,L]

RewriteRule ^(.*)/(\w+)/(\w+).html$ /sitemaps/sitemap.php?domain=$1&p1=$2&p2=$3
这样感觉不对路

试试这个

RewriteRule ^(.*)/\w+/[A-za-z]+(\d+)\.html$ index.php?domain=$2

RewriteEngine on
ErrorDocument 404 /404.html
#RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ ./index.php?domain=$1 [QSA,PT,L]

RewriteRule ^(.*)/\w+/[A-za-z]+(\d+)\.html$ /sitemaps/sitemap.php?domain=$2

这个不行

index.php和sitemaps/sitemap.php是不同的文件


没有重写之前:http://whois.hangye5.com/sitemaps/sitemap.php?domain=1
重写之后:http://whois.hangye5.com/sitemaps/sitemap1.php

RewriteRule ^(.*)/sitemaps/sitemap(\d+)\.html$ $1/sitemaps/sitemap.php?domain=$2

你再试试,再不行,就没办法了....

错了

重写之后:http://whois.hangye5.com/sitemaps/sitemap1. html

不行,他还是会跑到index.php里去。这个问题估计在第一个伪静态那里出问题了

RewriteRule ^(.*)$ ./index.php?domain=$1 [QSA,PT, L]
这条规则将一切不真实存在的页面都转到 index.php 去了
那个 L 表示结束重写规则处理,也就是说只要匹配成功后面的规则就不会再去检查了(以免浪费资源)

所以这条要写到前面去
RewriteRule ^(.*)/(\w+)/(\w+).html$ /sitemaps/sitemap.php?domain=$1&p1=$2&p2=$3

RewriteEngine on
ErrorDocument 404 /404.html
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)/sitemaps/sitemap(\d+)\.html$ $1/sitemaps/sitemap.php?domain=$2
RewriteRule ^(.*)$ index.php?domain=$1 [QSA,PT,L]

这样的不行,估计是上一次影响了下一条

RewriteEngine on
ErrorDocument 404 /404.html
RewriteRule ^sitemaps/sitemap([0-9]+).html$ /sitemaps/sitemap.php?domain=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?domain=$1 [QSA,PT,L]

这样可以了

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn