2012-01-03 12 views
0

を書き換え:.htaccessファイル:URLこれは作品ページネーション

RewriteRule ^newest/?$ index.php?type=newest 

これは動作しません:

RewriteRule ^newest/(\d+)*/?$ ./index.php?type=newest&p=$1 

私の再書き込みの残り:

IndexIgnore * 
RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 

これは私の上で動作しますlocalhostはxamppを実行していますが、私のWebホストでは動作しません。私はそれらに連絡する前に何が問題になるのでしょうか?

あなたは以下のコメントを解除して、Apacheの設定ファイル(httpd.confの)にhtaccessファイルを有効にする必要があります

答えて

1

チェックする物事のカップル...

;LoadModule rewrite_module modules/mod_rewrite.so 

ご使用のサーバーのhttpd.confにディレクトリエントリが含まれていないことを確認してください。

AllowOverride None 

これは、.htaccessファイルが個々のディレクトリで使用されないようにします。


<Directory /var/www/www.mysite.com> 
    Options FollowSymLinks 
    AllowOverride All 
    Order deny,allow 
    Deny from all 
    Satisfy all 
</Directory> 
はまたhttpd.confで、名前のApacheがアクセスファイル用に期待し、実際に.htaccessであることを確認してください:それはこのような何かを( AllowOverrideのすべてのに注意してください)になります。 AccessFileNameディレクティブはこの値を指定できます。たとえば: AccessFileNameディレクティブが別のものに設定されている

<virtualhost> 
    ServerName www.mysite.com 
    DirectoryRoot /var/www/www.mysite.com 
    AccessFileName .customhtaccess 
</virtualhost> 

場合は、.htaccessファイルを解析できません。

0

このルール

のRewriteRule ^最新/(\ dは+)* /?$ ./index.php?type=newest & P = $ 1

であなたの目的は、それならばどのようなものです0以上の数字と一致するようにされてそれがあるべき

のRewriteRule ^最新/(\ d)の* /?$ index.phpを?タイプ=最新& P = $ 1 [NC、L]

それが1桁以上に一致するようであれば、それはする必要があります

のRewriteRule ^最新/(\ d)の+ /?$ index.phpを?タイプ=最新& P = $ 1 [NC、L]

0

これを行うには、より効率的な方法を使用しないでください。その後、あなたはURLを解析し、ヨーヨーが必要なものを行うことができるしている、あなたのインデックスファイルへの要求のすべてをリダイレクトするには

RewriteEngine On 
RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 

:私はこのパターンを使用することをお勧めします。これはあなたの質問に対する訂正ではありませんが、あなたの仕事の種類を避けるための代替手段になります。

関連する問題