ここに私のhtaccessファイルがあります......
RewriteCond %{REQUEST_URI} ^/patients/billing/FAQ_billing\.html$ [OR]
RewriteCond %{REQUEST_URI} ^/patients/billing/getintouch\.html$
RewriteRule ^patients/billing/(.*)\.html$ $1.php [L,NC]
RewriteCond %{REQUEST_URI} ^/patients/findadoctor/a\.html$ [OR]
RewriteCond %{REQUEST_URI} ^/patients/findadoctor/b\.html$ [OR]
RewriteCond %{REQUEST_URI} ^/patients/findadoctor/c\.html$ [OR]
RewriteCond %{REQUEST_URI} ^/patients/findadoctor/d\.html$ [OR]
RewriteCond %{REQUEST_URI} ^/patients/findadoctor/e\.html$ [OR]
RewriteCond %{REQUEST_URI} ^/patients/findadoctor/f\.html$ [OR]
RewriteCond %{REQUEST_URI} ^/patients/findadoctor/g\.html$ [OR]
RewriteCond %{REQUEST_URI} ^/patients/findadoctor/h\.html$ [OR]
RewriteCond %{REQUEST_URI} ^/patients/findadoctor/i\.html$ [OR]
RewriteCond %{REQUEST_URI} ^/patients/findadoctor/j\.html$ [OR]
RewriteCond %{REQUEST_URI} ^/patients/findadoctor/k\.html$ [OR]
RewriteCond %{REQUEST_URI} ^/patients/findadoctor/l\.html$ [OR]
RewriteCond %{REQUEST_URI} ^/patients/findadoctor/m\.html$ [OR]
RewriteCond %{REQUEST_URI} ^/patients/findadoctor/n\.html$ [OR]
RewriteCond %{REQUEST_URI} ^/patients/findadoctor/o\.html$ [OR]
RewriteCond %{REQUEST_URI} ^/patients/findadoctor/p\.html$ [OR]
RewriteCond %{REQUEST_URI} ^/patients/findadoctor/q\.html$ [OR]
RewriteCond %{REQUEST_URI} ^/patients/findadoctor/r\.html$ [OR]
RewriteCond %{REQUEST_URI} ^/patients/findadoctor/s\.html$ [OR]
RewriteCond %{REQUEST_URI} ^/patients/findadoctor/t\.html$ [OR]
RewriteCond %{REQUEST_URI} ^/patients/findadoctor/u\.html$ [OR]
RewriteCond %{REQUEST_URI} ^/patients/findadoctor/v\.html$ [OR]
RewriteCond %{REQUEST_URI} ^/patients/findadoctor/w\.html$ [OR]
RewriteCond %{REQUEST_URI} ^/patients/findadoctor/x\.html$ [OR]
RewriteCond %{REQUEST_URI} ^/patients/findadoctor/y\.html$ [OR]
RewriteCond %{REQUEST_URI} ^/patients/findadoctor/z\.html$
RewriteRule ^patients/findadoctor/(.*)\.html$ findadoctor.php?id=$1 [L,NC]
250行の周りにたくさんのルールがあるように私を助けてください...
これは間違いなく残りの200行以上に依存しますが、これまでに投稿した内容は2行だけに削減できるようです。
RewriteRule ^patients/billing/(FAQ_billing|getintouch)\.html$ $1.php [L,NC]
RewriteRule ^patients/findadoctor/([a-z])\.html$ findadoctor.php?id=$1 [L,NC]
これにより、サイトがクロールされることはありません。
コメントで述べたように、次のようなものがある場合、特定のURLのみを書き換えたい場合、これをさらに減らすことは困難になります。
RewriteCond %{REQUEST_URI} ^/patients/findadoctor/paediatriccardiacanaesthesiology\.html$ [OR]
RewriteCond %{REQUEST_URI} ^/patients/findadoctor/paediatriccardiovascularthoracicsurgery\.html$ [OR]
RewriteCond %{REQUEST_URI} ^/patients/findadoctor/bonemarrowtransplant\.html$ [OR]
RewriteCond %{REQUEST_URI} ^/patients/findadoctor/kidneytransplant\.html$ [OR]
RewriteCond %{REQUEST_URI} ^/patients/findadoctor/cardiacanaesthesiology\.html$
RewriteRule ^patients/findadoctor/(.*)\.html$ subcategorydoctor.php?id=$1 [L,NC]
ただし、パターンを見つけることができる場合(たとえば、a〜zおよび長さが14文字以上)、これを次のように減らすことができます。
RewriteRule ^patients/findadoctor/([a-z]{14,})\.html$ subcategorydoctor.php?id=$1 [L,NC]
定義により、htaccessは、サーバーがファイルのすべてのフォルダーをチェックする必要があるため、サイトの速度を低下させます。あなたの場合、フォルダは/patients/findadoctor/
、/patients/
およびルートフォルダです。これらのルールを記述するのがより効率的ですサーバー設定自体でを設定し、AllowOverride None
を設定すると、Apacheがhtaccessファイルを探すのを停止します。共有ホスティングを使用している場合、これを行うことはできません。また、設定を変更するたびにサーバーを再起動する必要があります。
ただし、ほとんどの場合のパフォーマンスは大きな問題にはなりません。まず、htaccessファイルがサイトの速度を低下させていることを確認する必要があります。
findadoctor.php?id=a
)を直接読み込み、それでも読み込みに長い時間がかかる場合、PHPコードのどこかに問題があります。