3

USBスティックを介してポータブルサーバーを実行しています。問題は、ローカルマシンにもWAMPがインストールされており、Windowsの起動時にApacheが何らかの理由で開始されることです。これは、今思い出せず、変更できないランダムな理由によるものです。このような状況でポータブル サーバーを準備したいので、プロセスから httpd.exe を閉じてポータブル サーバーを起動することはできません。とにかく、すでにアクティブな httpd.exe のため、私のポータブル サーバーの WordPress サイトには localhost:81 からしかアクセスできません。データベース。

.htaccess を介してやりたいことは次のとおりです。

  • error.php ファイルを除く任意のパスで、ポート 80 でないかどうかを確認します
  • ポート 80 でない場合は、/error.php?code=port にリダイレクトします

WP リダイレクトや URL 処理よりも優先される可能性はありますか?

error.php で、httpd.exe などを手動で閉じる方法に関する情報を提供し、家族や友人がポータブル サイトにアクセスできるようにしました。イベントなどのギャラリーやカレンダー アプリケーションのようなものです。

助けてください?私には、まったく思いつきません。他の人はまだApacheを実行していないかもしれませんが、私はそのような状況に備えたいと思っています.

次のようなものですが、次は機能しません。

# BEGIN WordPress
<IfModule mod_rewrite.c>
    <If "%{SERVER_PORT} = 80">
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </If>
    <Else>
    RewriteEngine On
    RewriteRule ^(error.php)($|/) - [L]
    RewriteRule ^(.*)$ /error.php?code=port [L]
    </Else>
</IfModule>
# END WordPress
4

3 に答える 3

2
#  <If "%{SERVER_PORT} = 80">
RewriteEngine On
RewriteBase /
RewriteCond  %{SERVER_PORT} ^80$ 
RewriteRule ^index\.php$ - [L]
RewriteCond  %{SERVER_PORT} ^80$ 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
#</If>
#<Else>
RewriteEngine On
RewriteCond  %{SERVER_PORT} !^80$ 
RewriteRule ^(error.php)($|/) - [L]
RewriteCond  %{SERVER_PORT} !^80$ 
RewriteRule ^(.*)$ /error.php?code=port [L]
#</Else>
于 2012-09-22T16:57:35.183 に答える
0

このapache設定を試すことができます

RewriteEngine on 
RewriteCond  %{SERVER_PORT} !^80$ 
RewriteRule ^(.*) http://%{SERVER_NAME}:80%{REQUEST_URI} 

RewriteCond  %{SERVER_PORT} ^80$ 
RewriteRule .* http://example.com/index.php [L]

最初の段落は、80でない場合にリダイレクトされます

2つ目は、80に一致するものだけが必要な場合に、試すことができる代替手段です。

書き換えの詳細については、 http://httpd.apache.org/docs/2.2/mod/mod_rewrite.htmlを参照してください。

于 2012-09-22T04:00:21.003 に答える
0

VirtualHostsはあなたが探しているものです。

ANDを達成するhttp://wplocal/ 、または http://wp.local/を指す、またはを指す方法の小さな例。/var/www/wphttp://localhost/ http://http.local/another/root/path

NameVirtualHost *:80

<VirtualHost *:80>
    ServerAdmin wp@you.com
    DocumentRoot "/var/www/wp"
    ServerName wplocal
    ServerAlias wp.local
    ErrorLog "/somepath/here"
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin you@you.com
    DocumentRoot "/another/root/path"
    ServerName localhost
    ServerAlias http.local
    ErrorLog "/logs/path"
</VirtualHost>

そのことを説明するクールな画像については、これを参照してください。

お役に立てば幸いです。

于 2012-09-22T04:12:19.843 に答える