1

私は .htaccess と mod_rewrite にまったく慣れていません。特定の URL を使用して、seo に適した URL を作成できます。しかし、私はすべてを統一するものを作りたいと思っています。

例えば;

Original : http://www.domain.com/index.php?module=profile&id=1.
SEO : http://www.domain.com/profile/1
.htaccess Code: RewriteRule ^profile/(.*)  ?module=profile&id=$1 [L]

ご覧のとおり、ファイル内profileの他のモジュール名を指定する必要があります.htaccess

私がやりたいことは次のとおりです。

Original : http://www.domain.com/?request=module/profile/id/1/other/any
SEO : http://www.domain.com/module/profile/id/1/other/any

ただし、mod_rewrite の同じロジックは適用されません。

RewriteRule ^(.*)  ?request=$1 [L]

とにかくこの問題の周りにありますか?

私の完全な .htaccess;

# Disable server signature
ServerSignature Off
####################################################################
# MOD REWRITE
####################################################################
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /

RewriteRule (.*)  /index.php?request=$1 [L]

</IfModule>

この方法で問題なく使用できます。

# Disable server signature
ServerSignature Off
####################################################################
# MOD REWRITE
####################################################################
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /

RewriteRule ^/ index.php [L]

RewriteRule ^content/(.*) ?module=content&request=$1
</IfModule>

ワーキングバージョン

# Disable server signature
ServerSignature Off
####################################################################
# MOD REWRITE
####################################################################
<IfModule mod_rewrite.c>
RewriteEngine on

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

RewriteBase /

RewriteRule (.*) index.php?request=$1 [L]
</IfModule>

ただし、少なくとも 1 つのことを指定する必要があります。

ご協力ありがとうございました。

4

1 に答える 1

3

あなたのアプローチに問題はありません。小さな修正が必要です。

編集2

RewriteRule (.*)  index.php?request=$1 [L]

それでおしまい。ところで。すべてをリダイレクトして、スーパーグローバルindex.php内でリクエストパラメーターを探すだけでもかまいません。$_SERVER['REQUEST_URI']

編集

問題はここにあります:

<IfModule mod_deflate.c>        <<<<<
SetOutputFilter DEFLATE
# Don't compress
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
#Dealing with proxy servers
<IfModule mod_headers.c>        <<<<<
Header append Vary User-Agent
</IfModule>
</IfModule>                     <<<<<

編集3

...
RewriteEngine on

# Pass any request not referring directly to a file or directory in the
# filesystem to index.php    
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php?request=$1 [L]
于 2012-11-02T15:49:58.793 に答える