1

重複の可能性:
URLの.php拡張子を削除する

自分のサブディレクトリをpublic_htmlメインディレクトリとして機能するように変更しました。現在、mysite.com/alpha/index.phpとしてリダイレクトしmysite.comます。これは完全に機能しています。

同様に、私は別のファイルを持っていますevents.php、すなわち、にmysite.com/alpha/events.php?eventid=10対応しますmysite.com/events.php?eventid=10

mysite.com/events/10/しかし、の代わりに上記のパスにアクセスしたかったのmysite.com/events.php?eventid=10です。このために、ファイルを再度変更しましたが、のロードに失敗しますdynamic URLs。たとえば、リンクにマウスを合わせると、次のように表示されます。

`mysite.com/events/14` 
`mysite.com/events/15` 
`mysite.com/events/16` 
`mysite.com/events/17`

など[これが欲しい]しかし、それをクリックすると[mysite.com/events/14ホバーに表示されたリンクをクリックすると]ページが開き、ページはテーブルmydomain.com//alpha/events.php/14/14?eventid=から何もフェッチしません。sql

私の.htaccessファイル:

# .htaccess main domain to subdirectory redirect
# Copy and paste the following code into the .htaccess file
# in the public_html folder of your hosting account
# make the changes to the file according to the instructions.
# Do not change this line.
RewriteEngine on
RewriteRule ^([A-Za-z0-9\-]+)/([0-9]+)/?$ $1.php?eventid=$3
# Change example.com to be your main domain.
RewriteCond %{HTTP_HOST} ^(www.)?mysite.com$
# Change 'subdirectory' to be the directory you will use for your main domain.
RewriteCond %{REQUEST_URI} !^/alpha/
# Don't change these line.'
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Change 'subdirectory' to be the directory you will use for your main domain.
RewriteRule ^(.*)$ /alpha/$1
# Change example.com to be your main domain again.
# Change 'subdirectory' to be the directory you will use for your main domain
# followed by / then the main file for your site, index.php, index.html, etc.
RewriteCond %{HTTP_HOST} ^(www.)?mysite.com$
RewriteRule ^(/)?$ alpha/index.php [L]

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

1 に答える 1

1

apache構成の7行目は次のようになります。

RewriteRule ^([A-Za-z0-9\-]+)/([0-9]+)/?$ $1.php?eventid=$2 [L]
于 2013-01-21T20:39:27.373 に答える