ホームページ >バックエンド開発 >PHPチュートリアル >.htaccess の擬似静的問題
.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} !-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に変換します
これは判断が難しいですが、これには 2 種類しかないので、やはり htaccess
にアクセスする必要があります。
フレームワークのルーティング割り当てをよく見ることをお勧めします
これが終わったら、他の Web サイトに移動する必要があります
RewriteEngine on
ErrorDocument 404 /404.html
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
によって引き起こされます
もちろん、そんなことはできません。順序の問題
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
RewriteRule ^(. *) /sitemaps/sitemap(d+).html$ $1/sitemaps/sitemap.php?domain=$2
RewriteRule ^(.*)$ Index.php?domain=$1 [QSA,PT,L]
これは無効です動作しません。最後のものが次のものに影響を与えたと推定されます
私には [L] がありますが、あなたにはありません
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{ REQUEST_FILENAME} !-fRewriteRule ^(.*)/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]
以上です