2017-08-22 10 views
2

を書き直し、私はこのような普遍的なURLの並べ替えをするのが方法です:の.htaccessのURLフォーマットは

/News?Today 
/News?Archive 

/News?703 
/News?654 
/News?308 (and so on) 

の代わりに:

/News?which=Today 
/News?which=Archive 

/News?which=703 
/News?which=654 
/News?which=308 (and so on) 

友人が、私に次の提案を与えましたテストされていない

RewriteRule /News?Today /News.php?which=Today 
+0

、そうではありません最初のパラメータと比較される部分。 – covener

答えて

2

:あなたは、クエリ文字列を見てのRewriteCondを使用する必要が

DirectoryIndex Ena.php 

RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.+)$ Ena.php?open=$1 [L,QSA] 

RewriteCond %{QUERY_STRING} ^([^=]+)$ 
RewriteRule ^/?$ Ena.php?open=%1 [L] 
+0

私はあなたのソリューションをまだテストすることができませんでした。私は次の日になりますので、この質問を更新しておきます。 – De1an

+0

はい、解決策も試しました。そして、それは他のもののように行動し続ける。それは正常な行動ですか? – De1an

+0

申し訳ありませんが、詳細を入力する必要があります。あなたはどのURLをテストに使用しましたか、どのようなエラーがありましたか? – anubhava

-1

彼はこれが正しいhtaccessのコマンドで実際に確認されていません
RewriteRule ^/News?(.*)$ /News.php?which=$1 [L,QSA] 

全体のこと:あなたのサイトのルートの.htaccessにこのルールを使用することができます

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^/News?(.*)$ /News.php?which=$1 [L,QSA] 
</IfModule> 
+1

ifmoduleタグが共有ホスティングサーバー上で重複しています。 – Luka

+0

さて、このコマンド( 'RewriteRule ^/News?(。*)$ /News.php?which=$1 [L、QSA]')を使って 'RewriteRule ^/Ena ?/?Services'、 '/?Prices'などのようなページを読み込むことができるように、DirectoryIndexをEna.phpに配置します。?(。*)$ /Ena.php?open=$1 [L、QSA]' 。これで、デフォルトのページがうまく読み込まれますが、他のページはロードされません。id est: '/?Services'と入力すると、対応するページではなくデフォルトのページが読み込まれます。助けて? – De1an

+0

rewriteruleがクエリ文字列と一致しません。 – covener