0

私は、ウェブサイトの一部としてブログ/ニュース ページを持っているクライアントのプロジェクトに取り組んでいます。これは問題ありませんが、標準の問題の php 変数の代わりにカスタム パーマリンクを使用するように要求されています。

書き換えルールを作成するために、searchfriendlyurls.com のジェネレーターを使用しました。これを Web サイトのルート フォルダーにある .htaccess ファイルに追加しましたが、リンクをクリックすると、ホストの 404 エラー ページが表示されます。助言がありますか。以下の .htaccess ファイル:

Options -Multiviews

RewriteEngine On
RewriteBase /

# Force search engines to use domain.example.org.uk
RewriteCond %{HTTP_HOST} !^domain\.example\.org\.uk$
RewriteRule ^(.*) http://domain.example.org.uk/$1 [R=301,L]

# Specify search friendly URLs
RewriteRule ^media/news/([a-z]+)/([a-z]+)/([a-z]+)/([a-z]+)$ /media/news/article.php?article_url_year=$1&article_url_month=$2&article_url_title=$3&article_id=$4 [L]

# Generated for free at SearchFriendlyURLs.com

どんな提案でも大歓迎です

4

2 に答える 2

0

あなたの article.php はnumbers、あなたのクエリarticle.php で判断することを期待している可能性があることに気付きましたか? article_url_year=$1& article_url_month=$2ただし、 RewriteRule RewriteRule ^media/news/([a-z]+)は文字のみに一致します。

この行を置き換えてみてください:

RewriteRule ^media/news/([a-z]+)/([a-z]+)/([a-z]+)/([a-z]+)$ /media/news/article.php?article_url_year=$1&article_url_month=$2&article_url_title=$3&article_id=$4 [L]

これとともに:

RewriteRule ^media/news/([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)$ /media/news/article.php?article_url_year=$1&article_url_month=$2&article_url_title=$3&article_id=$4 [L]

そして、それが機能するかどうかを確認してください。

このコードは以下のみを許可します:

  • すべての文字 (大文字と小文字)。
  • すべての数字。
  • ダッシュ (-)
于 2012-11-14T01:49:44.180 に答える
0

ミックスに別の正規表現のバリエーションを追加します。

RewriteRule ^media/news/([^/]+)/([^/]+)/([^/]+)/([^/]+)$ /media/news/article.php?article_url_year=$1&article_url_month=$2&article_url_title=$3&article_id=$4 [L]

例: URL PATH: /media/news/2012/11/test-article/1

書き換えログが有効になっている場合、次のように表示されます。

[rid#7f920b4b00a0/initial] (3) [perdir /srv/www/htdocs/] applying pattern '^media/news/([^/]+)/([^/]+)/([^/]+)/([^/]+)$' to uri 'media/news/2012/11/test-article/1'
[rid#7f920b4b00a0/initial] (2) [perdir /srv/www/htdocs/] rewrite 'media/news/2012/11/test-article/1' -> '/media/news/article.php?article_url_year=2012&article_url_month=11&article_url_title=test-article&article_id=1'
[rid#7f920b4b00a0/initial] (3) split uri=/media/news/article.php?article_url_year=2012&article_url_month=11&article_url_title=test-article&article_id=1 -> uri=/media/news/article.php, args=article_url_year=2012&article_url_month=11&article_url_title=test-article&article_id=1
[rid#7f920b4b00a0/initial] (2) [perdir /srv/www/htdocs/] trying to replace prefix /srv/www/htdocs/ with /
[rid#7f920b4b00a0/initial] (1) [perdir /srv/www/htdocs/] internal redirect with /media/news/article.php [INTERNAL REDIRECT]
[rid#7f920bcdda00/initial/redir#1] (3) [perdir /srv/www/htdocs/] strip per-dir prefix: /srv/www/htdocs/media/news/article.php -> media/news/article.php
[rid#7f920bcdda00/initial/redir#1] (3) [perdir /srv/www/htdocs/] applying pattern '^media/news/([^/]+)/([^/]+)/([^/]+)/([^/]+)$' to uri 'media/news/article.php'
[rid#7f920bcdda00/initial/redir#1] (1) [perdir /srv/www/htdocs/] pass through /srv/www/htdocs/media/news/article.php
于 2012-11-14T03:39:57.940 に答える