1

デフォルトの URL

/courses/category?cat=skills

/courses/course?cat=skills&course=timekeeping

上記を短縮してアクセスできるようにしようとしています

望ましい

/courses/skills

/courses/skills/timekeeping

以下の使用は whencatおよびcoursehave 変数に対して機能します

RewriteRule ^courses/([^/]*)/([^/]*)$ /courses/course?cat=$1&course=$2 [L]

私も追加しようとしRewriteRule ^courses/([^/]*)$ /courses/category?cat=$1&course=$2 [L]ましたが、アクセスしようとする/courses/skillsと次のようになります。

内部サーバーエラー

注:.phpを使用して削除されました

    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME}\.php -f
    RewriteRule ^(.*)$ $1.php
4

2 に答える 2

1

これは完全な .htaccess である必要があります。

RewriteEngine on

RewriteRule ^courses/([^/.]+)/?$ /courses/category?cat=$1 [L,QSA,NC]

RewriteRule ^courses/([^/.]+)/([^/.]+)/?$ /courses/course?cat=$1&course=$2 [L,QSA,NC]

# To internally forward /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(.+?)/?$ /$1.php [L]
于 2013-11-05T17:00:09.413 に答える
0
RewriteRule ^courses/([^/]*)$ /courses/category?cat=$1&course=$2 [L]

ここで$2は、定義していないため、何の意味もありません。

代わりにこれを使用してください:

RewriteRule ^courses/([^/]*)$ /courses/category?cat=$1 [L]
于 2013-11-05T17:01:54.563 に答える