0

ホームページと連絡先ページのみを持つ単純なサイトを構築していますが、.htaccess を使用してさまざまな会社の URL を書き換えることができないかと考えています。

たとえば、website.com/companyname-contact/ にアクセスすると、ブラウザ バーにその URL が表示されますが、実際には一般的な contact.php ページが読み込まれます。次に、php を使用して、その特定の会社名の正しい連絡先の詳細を取得できます。 .

これは、さまざまな会社名 (例: website.com/anothercompany-contact/) に対して機能する必要がありますが、承認された会社名の配列に対してのみ機能します。

これは不可能かもしれませんが、今朝約 4 時間 Google で調べても実際には進展がなかったので、質問したいと思いました。

ありがとう

4

2 に答える 2

2

承認された会社名を .htaccess ファイルに手動でリストしたくない場合 (これはUGLYに見えます)、次のことをお勧めします。

RewriteEngine On 


  RewriteRule (.*)-contact$ /contact.php?company_name=$1 [L,QSA,NC]

そして、あなたのcontact.phpで

  • 有効な会社名かどうかを判断します-データベースまたは使用している方法を確認してください。(必ず入力をエスケープしてください)
  • 有効でない場合は、いくつかのオプションがあります。
    • デフォルトの 404 ページにリダイレクトします
    • インテリジェントな警告ページを発行し (つまり、データベースにある別のスペルの提案を含めます)、404 ヘッダーを設定します。(より良いIMO
    • データベース内の同様の会社名がページの上部にメモを付けてリダイレクトする可能性がある場合
于 2014-03-04T14:58:24.620 に答える
0

はい、できます。書き換えエンジンを有効にする必要があります。そうすれば、正規表現を使用して目的を達成できるようになります。

これはあなたの htaccess が好きなものの例です:

RewriteEngine On
RewriteRule    ^contact/([A-Za-z0-9-]+)/?$    contact.php?company=$1    [NC,L]
于 2014-03-04T14:53:08.517 に答える