2011-11-11 7 views
1

に私は現在、ウェブサイト(http://tannernelson.me/ehsWordpressのURLパラメータは、GoDaddyの

それはGoDaddyの上でホストされているを作っています、と私は、CMSとしてのワードプレスを使用しています。

私が作ることができるようにしたい:

http://tannernelson.me/ehs/school/academics/teachers/jsmith 

ターン

http://tannernelson.me/ehs/index.php?pagename=teachers&detail=jsmith 

にだから、基本的には、URLへの4つのセグメント(学校/学問/教師/ JSMITH)私が存在する場合最後のものを変数にします。私の現在のURL書き換えが現在

# Mod Rewrite 
Options +FollowSymLinks 
RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /ehs/index.php [L] 
Options -Multiviews 

あるので、任意のURLの第四のセグメントは、変数「詳細」になります

それも、デフォルトのWordPressの.htaccessファイルを、他の方法では動作しません。そして、私はそれが何を意味しているのか、どのようなリクエストURIがそれから作られているのか分かりません。それは本当に混乱しています。

アイデア?

答えて

2

あなたが今持っているコードの意味:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

を要求したファイル名されていない場合(!)通常のファイル-fと要求されたファイル名!)でない場合は、ディレクトリ-dその後、 :

RewriteRule . /ehs/index.php [L] 

マッチ任意の単一文字(.)と一致した場合URLが/ehs/index.phpに書き換えられ、最後のルール([L])になりますので、それ以上のルールは処理しないでください。

これはあなたの望むようには見えませんが、動作しているようです。​​は、カスタム404が見つかりませんでしたので、http://tannernelson.me/ehs/index.php(私は)と考えています。私はちょうど私のApacheサーバ上でこれをテストし、それが動作

Options +FollowSymLinks 
RewriteEngine On 
RewriteBase/

# Redirect the ehs/school/academics/$1/$2 URIs to /ehs/index.php?pagename=$1&detail=$2 
RewriteRule ^ehs/school/academics/([^/]+)/([^/]+)$ /ehs/index.php?pagename=$1&detail=$2 [L] 

# Otherwise if the requested URI is not found (not a file nor a directory) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

#Redirect everything else to index.php 
RewriteRule .* /ehs/index.php [L] 

Options -Multiviews 

は、次の.htaccessのコードを試してみてください。