-1

次のコードを使用して、をWebサイトのドメイン名.htaccessに強制します。www

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

今、私はこれから私のURLを変更したいと思います:

www.mysite.com/index.php?i=something

www.mysite.com/something

しかし、私はまだ行く能力を持ちたいです

www.mysite.com/admin.php(たとえば)別のページとして。

RewriteRule ^(.*)$ index.php?i=$1 [NC]このコードを.htaccessファイルに追加しようとしましたが、その後に何かを入力/すると、get変数と見なされます。この問題を解決するにはどうすればよいですか?

4

4 に答える 4

2

ルートディレクトリにある1つの.htaccessファイルでこのようなことを試すことができます。

Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !index\.php  [NC]
RewriteCond %{REQUEST_URI} !admin\.php  [NC]
RewriteRule ^(.+)/?  /index.php?i=$1    [L,NC]

admin.php任意のファイルである可能性がある場合は、置き換えるだけです

RewriteCond %{REQUEST_URI} !admin\.php  [NC]

RewriteCond %{REQUEST_FILENAME} !-f

404エラーハンドラスクリプトにリダイレクトするには、次のような1行を追加します。

ErrorDocument 404 /path/404.php

これは単なる例です。それに応じて変更してください。

于 2013-03-27T10:09:00.817 に答える
1

これを試してみてください:-

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
于 2013-03-27T10:12:50.340 に答える
0

これを試して...

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^(.*)/$ /index.php?i=$1 [L]  // www.mysite.com/something/

また

RewriteRule ^(.*)$ /index.php?i=$1 [L]  // www.mysite.com/something
于 2013-03-27T10:03:08.237 に答える
0

このようにexpiationを追加する必要があります。RewriteRuleの前にある必要がありますexpiationのS=1後にあるRewriteRuleをスキップするこのフラグの詳細については、このページを参照してくださいhttp://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewriteflags

RewriteCond %{REQUEST_URI} ^(.*)/admin\.php$ [NC,OR]
RewriteRule ^ admin.php [S=1,L] 
RewriteRule ^(.*)/$ /index.php?i=$1 [NC]
于 2013-03-27T10:06:52.293 に答える