.htaccess の擬似静的問題

WBOY
WBOYオリジナル
2016-06-23 13:35:20739ブラウズ

.htaccess 疑似静的問題

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

私はこれを使用していますが、この欠点の 1 つは、すべてのファイルが含まれていることです

たとえば、whois.hangye5.com/womai.cn にアクセスすると、これで問題ありません。
ただし、whois.hangye5.com/sitemaps/sitemap1.html にアクセスすると、index.php ファイルにも移動します
両方のファイルを Index.php に移動する必要はないと思います


何を変更する必要がありますか?

ディスカッションに返信する(解決策)
#ディレクトリが存在する場合は書き換えない

RewriteCond %{REQUEST_FILENAME} !-d

#ファイルが存在する場合は書き換えない
RewriteCond %{REQUEST_FILENAME} !-f

whois .hangye5.com/sitemaps/sitemap1.html
は、当然、sitemaps/sitemap1.html は存在しません

^(.*)$ には、存在しないものがすべて含まれます。動作しません (index.php は常に存在します)
それについて大騒ぎする必要があります .*

sitemaps/sitemap1.html
これらも擬似静的になるように準備されています

この場合はどうすればよいですか


教えてくださいいくつかのアドバイス 静的問題

Whois クエリを実行していたとき、それは疑似静的


http://whois.xxx.com/womai.cn


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


これを使ってもOKです


しかし、ここでもう 1 つ疑似静的ファイルを作成したいと思います
whois.xxx.com/sitemaps/sitemap1.html
whois.xxx.com/sitemaps/sitemap2.html
whois.xxx.com/sitemaps/sitemap3 .html
こんな感じ


やり方が分からない、コンテンツを追加する方法が分からない
自分で追加した方法が何か間違っています。

whois.xxx.com/sitemaps/sitemap1.html
これをindex.php?domain=sitemaps/sitemap1.htmlに変換します

Index.php内で判断して処理すれば良いだけです


これは判断が難しいですが、これには 2 種類しかないので、やはり htaccess
にアクセスする必要があります。

フレームワークのルーティング割り当てをよく見ることをお勧めします

なかなか男らしいですね

これが終わったら、他の Web サイトに移動する必要があります

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


これは機能しません

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

いいえ、彼はまだindex.phpにアクセスします。この問題は、おそらく最初の疑似静的

によって引き起こされます

もちろん、そんなことはできません。

順序の問題

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

RewriteRule ^(.*)$index.php ?domain=$1 [QSA,PT,L]



ErrorDocument 404 /404.html の RewriteEngine
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]



これは無効です動作しません。最後のものが次のものに影響を与えたと推定されます

私には [L] がありますが、あなたにはありません

ErrorDocument 404 /404.html の RewriteEngine

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{ REQUEST_FILENAME} !-f

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

RewriteRule ^(.*)$ Index.php?domain=$1 [QSA,PT,L]

これは本当にうまくいきません

再度調整します
RewriteRule ^(.*)/w+/[A-za-z]+(d+).html$ sitemaps/sitemap.php?domain=$2 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$index.php?domain=$1 [QSA,PT,L]


ErrorDocument 404 /404.html の RewriteEngine
RewriteRule ^(.*) / w+/[A-za-z]+(d+).html$ sitemaps/sitemap.php?page=$2 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ ( .*)$index.php?domain=$1 [QSA,PT,L]

いいえ、index.php 行を変更する方法はありますか? 私の行の機能は
whois.hangye5.com/womai です。 cn の後にドメイン名

私にはできますが、あなたにはできません。何も言うのは難しいです
RewriteRule の文字列にはドメイン名が含まれないため、おそらくあなたの考えは間違っています

誰もがこれを行う
whois.22.cn/womaicn

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]

以上です

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。