0

私は.htaccessに苦労しています、私はこのコードを持っています:

<pre>
# PRODUCTS
RewriteRule ^(.*)/(.*)$     /newwebsite/product.php?category=$1&product=$2 [L,NC]

# SERVICES
RewriteRule ^(.*)/(.*)$     /newwebsite/service.php?category=$1&service=$2 [L,NC]

# PLAIN PAGES
RewriteRule ^/$                             /newwebsite/index.php  [L,NC]
RewriteRule ^signup-free$                   /newwebsite/signup-free.php  [L,NC]
RewriteRule ^about$                         /newwebsite/content.php?page=1 [L,NC]
RewriteRule ^portfolio$                     /newwebsite/portfolio.php [L,NC]
RewriteRule ^our-stores$                    /newwebsite/our-stores.php  [L,NC]
RewriteRule ^contact$                       /newwebsite/contact.php  [L,NC]
RewriteRule ^products-list$                 /newwebsite/lists.php?action=products  [L,NC]
RewriteRule ^services-list$                 /newwebsite/lists.php?action=services  [L,NC]
</pre>

コードが正しく機能していません。ProductsとServicesのルールに何かを追加して、「slash」や「subfolder」を追加せずに、それぞれ「product.php」と「service.php」にリダイレクトする必要がありますが、何をどのように行うかわからない、つまり私はそれが必要なだけです:

http://www.root.com/maintenance-services/weekly-pool-service  
  redirects to =>  
http://www.root.com/service.php?category=maintenance-services&service=weekly-pool-service

しかし同時に私はそれが必要です:

http://www.root.com/hot-tubs/jacuzzi 
  redirects to =>  
http://www.root.com/product.php?category=hot-tubs&product=jacuzzi

PRODUCTSとSERVICESを区別するにはどうすればよいですか、同じパラメーターで別のページに移動するようにapacheに指示するにはどうすればよいですか?

私は混乱しています。どうもありがとうございます。

4

1 に答える 1

2

ファイルrewrite.phpを作成し、そこにすべてをリダイレクトします。

RewriteRule ^(.*)/(.*)$     /newwebsite/rewrite.php?sub=$1&second=$2 [L,NC]

このファイルにすべてのロジックを入れます。

擬似コード

if($_GET['sub'] exists in table "service") {
   $_GET['category'] = $_GET['sub'];
   $_GET['service'] = $_GET['second'];
   include 'service.php';
}else{
   ...
}
于 2013-01-03T11:42:43.673 に答える