web-dev-qa-db-ja.com

スラッシュで始まり、数字と文字のみがあり、スラッシュで終わるURLを処理するルールを書き換えます

私のようなURLを取得してURLを取得しようとしています

http://example.com/?image=2VMt2

したがって、私のドメインに解決するためにPHPの[GET]メソッドを使用してindex.php

http://example.com/2VMt2

私が使用しているルールは以下のとおりです。

RewriteEngine on
RewriteRule    ^/([A-Za-z0-9-]+)/?$    index.php?image=$1    [NC,L]

CentOSを実行していて、構成は次のようになります。

# This should be changed to whatever you set DocumentRoot to.
#
<Directory "/var/www/html">

# 
# Possible values for the Options directive are "None", "All",
# or any combination of:
#   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important.  Please see
# http://httpd.Apache.org/docs/2.2/mod/core.html#options
# for more information.
# 
    Options Indexes FollowSymLinks

#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#   Options FileInfo AuthConfig Limit
# 
    AllowOverride All

# 
# Controls who can get stuff from this server.
#
    Order allow,deny
    Allow from all

</Directory>
3
John

サーバー構成が正しいようです。

ただし、mod_rewriteコードを変更する必要があります。リライトルールで/を使用して、先頭の/?$を削除し、末尾のスラッシュをオプションにすると、http://example.com/2VMt2http://example.com/2VMt2/の両方のURLが機能します。

RewriteEngine on
RewriteRule    ^([A-Za-z0-9-]+)/?$    index.php?image=$1    [NC,L]
2
Nikhil Supekar