- 締切済み
.htaccessの設定方法
http://www.***.com/aaa/aaa_index.jsp?id=123&・・・・ ↓ http://www.***.com/aaa/aaa_index.jsp?123&・・・・ というように『id=』を抜いた形でアクセスさせたいのですがうまくいきません。 設定した内容は下記のとおりです。 RewriteEngine on RewriteRule ^([^/]+)/([^/]+)/*_index.jsp?id=([0-9A-Z]+)+ /*/*/*_detail.jsp?$1 なにがいけないのでしょうか。 アドバイスお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- Trick--o--
- ベストアンサー率20% (413/2034)
関連するQ&A
- .htaccessの設定について
下記の.htaccessが思うように動作しません。どこが悪いのでしょうか。 RewriteEngine on RewriteRule http://www.aaa.jp/nnn/nnn/ http://www.aaa.jp/nnn/nnn.htm [R=301,L] htaccess.txtの名前で作成して、ffftpでhttp://www.aaa.jp/nnn/というフォルダにアップロードした後、.htaccessと名前を変え、permissionを644にしましたが、思うように動作しません。
- ベストアンサー
- その他(インターネット・Webサービス)
- mod_rewriteについて
いつもお世話になっております。 mod_rewriteを使ってURLの書き換えをしたいと思っております。 下記のようなファイルがあるとします。 http://www.domain.com/aaa/list.php http://www.domain.com/aaa/detail.php http://www.domain.com/bbb/list.php http://www.domain.com/bbb/detail.php PHPファイルはHTMLに書き換えています。 ---------------------------------------- RewriteEngine on # QUERY_STRING RewriteRule /([a-z]+)\/([a-z]+)\/([0-9]+)\.html$ /$1/$2.php?$3 [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule (.*)\.html$ /$1.php [L] ---------------------------------------- http://www.domain.com/aaa/detail/2.html http://www.domain.com/bbb/detail/2.html 上記どちらにアクセスしてもページが表示されませんと なってしまいます。 どうぞ、ご教授お願いいたします。 <環境> PHP:4.3.2 Apache:2.0.40 (Red Hat Linux)
- ベストアンサー
- PHP
- 動的URLから静的URLへの301リダイレクト
下記のように動的URLを静的なURLに置き換えています。 http://www.sample.com/dir/aaa/index.php?content_id=1 ↓ http://www.sample.com/aaa_index.content_id_1.htm この動的URLを、置き換えた静的URLへ301リダイレクトさせたいのですが、うまくいきません。 htaccessの記述を下記のようにしましたが、多分、動的URLの「?」があるためうまくいかないようです。 RewriteEngine on RewriteBase / RewriteRule ^dir/aaa/index\.php?content_id=(.*)$ /aaa_index.content_id_$1.htm [R=301,L] 「?」が含まれる動的URLから静的URLに301リダイレクトさせたい場合、どのように記述すれば良いでしょうか?
- 締切済み
- その他(プログラミング・開発)
- .htaccessのRewriteRuleエラー
PHPのフレームワークを使って、サイトを作成しているのですが、 .htaccessの設定でつまずいております。 RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php 上記のコードはフレームワークを使う時の お決まりのようなコードなのだと思うのですが、 これはコピペして問題無く動作しております。 ※このコードは下記ページのものをコピペしました。 http://www.yiiframework.com/doc/guide/1.1/ja/topics.url#sec-7 しかし、この既存の.htaccessファイルに下記の通り、 www無しのアクセスをwww有りのurlに転送させるための コードを追加すると、サイト内のリンクが切れてしまいます。 RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{HTTP_HOST} ^mydomain.com //これを追加した RewriteRule ^(.*)$ http://www.mydomain.com/$1 [R=301,L] //これを追加した RewriteRule . index.php 記述方法が誤っているのだと思うのですが、どのように記述すれば、 正常に動くのでしょうか?
- ベストアンサー
- PHP
- mod_rewrite(.htaccess)で静的化したいのですが。。
mod_Rewrite(.htaccess)を使って静的化をしようとしています。 設定内容は、以下にしています。 --------------------- ■httpd.conf DocumentRoot "/var/www/html/" <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory "/var/www/html/"> Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> --------------------- ■.htaccess RewriteEngine on RewriteRule ^/free/([0-9,a-z,A-Z]+)$ /free/index.php?action=$1 --------------------- 上記の設定だと次ページが表示されません。 また、httpd.confの設定に以下を追加すると正常に次ページが表示され、URLの静的化されます。 --------------------- RewriteEngine on RewriteRule ^/free/([0-9,a-z,A-Z]+)$ /free/index.php?action=$1 --------------------- .htaccessが有効になっていないか、もしくは.htaccessの格納場所が間違えているかと 思っているのですが、いろいろ試してみましたが結局うまくいきません。 .htaccessの格納場所は、http://ローカルIP/free/配下に置いてあります。 どなたかご存知の方はいらっしゃいますでしょうか。 上記の設定内容だけだと情報が足りないなどございましたら、おっしゃってください。 宜しくお願い致します。
- 締切済み
- その他(ITシステム運用・管理)
- 初.htaccess設定。答え合わせお願いします
趣味でWEBサイトを作って公開しています。 サイトを作り直したのでアップしたいのですが、.htaccessで転送設定したほうがよいと知りました。 恥ずかしながら旧サイトで何もしておらず、URLの正規化など転送以外にしたほうがいい設定も合わせてやってみたいです。 これでアップしていいか、教えてくださる方おられましたらご指導お願いしたいです。 【やりたいこと】 ・URL正規化 ・各旧ページから各新ページへの転送 ・TOPのindexをURLに表示しない ※使用しているサーバはロリポップです。 【作成した.htaccess】---------------------- #www無しのURLに統一 RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.サイトURL\.com RewriteRule ^(.*) http://サイトURL.com/$1 [R=301,L] #各ページ旧URLから新URLへの転送(中間にあるディレクトリをなくした) RewriteEngine on RewriteRule ^http://サイトURL.com/旧ディレクトリA/旧ページ1.html$ http://サイトURL.com/新ページa.html [R=301,L] RewriteRule ^http://サイトURL.com/旧ディレクトリA/旧ページ2.html$ http://サイトURL.com/新ページb.html [R=301,L] RewriteRule ^http://サイトURL.com/旧ディレクトリB/旧ページ1.html$ http://サイトURL.com/新ページc.html [R=301,L] RewriteRule ^http://サイトURL.com/旧ディレクトリB/旧ページ2.html$ http://サイトURL.com/新ページd.html [R=301,L] ・・・各ページ分用意 #index.php無しのURLに統一 RewriteEngine On RewriteCond %{THE_REQUEST} ^.*/index.php RewriteRule ^(.*)index.php$ http://サイトURL.com/$1 [R=301,L] 【作成したhtaccessここまで】---------------------- <Q1>「RewriteEngine On」は、冒頭に1度書けば良いのでしょうか?それとも命令1つごとに必要なのでしょうか。 <Q2>3番め(#indexなしにする)について、 旧ページはindex.htmlですが新ページはindex.phpになりました。 その場合の書き方もこれで合っていますか? 2番めの転送設定でindex.html→index.phpにしておけばこれでいいのかなと思っているのですが・・・ <Q3>1番目~3番目の各命令を書く順序は合っていますか? 上から順に読み込むのか、そもそもどの順で書いても関係ないのでしょうか。 全くの初心者なので質問の仕方もわかりにくいかと思いますが、 教えてくださる方いらっしゃいましたらよろしくお願いいたします。
- ベストアンサー
- HTML
- Apache mod_rewriteが .htaccess ではうまく適用できない
mod_rewriteで書き換えに挑戦しているのですが、うまく動いてくれません。 やりたいことは、 http://www.example.com/ 以下をすべて http://www.example.com/index.php に書き換えたい。 開発中は直接 httpd.conf を編集できるため RewriteEngine on RewriteRule ^/((?!css|js|img).*)$ /index.php?&%{QUERY_STRING} [L] 上記で問題なく動いているのですが、htaccessではinternal errorかACCESS forbidden, object notfound などでうまく以後来ません。 ためしに、 RewriteRule aaa index.php?&%{QUERY_STRING} [L] として、http://www.example.com/aaa にアクセスしても object notfound が返ってきます。 ^aaa としたり ^aaa$ としたり、いろいろ試してるのですが全滅・・・ 検索して見つかったサンプルなどをそのままコピーしても使えません。 ちなみに、開発環境では Apache2.2.4。 公開用では 1.3系 の予定です。 Apache2.2.4 の httpd.conf ではOK。htaccess ではOUT。 難しい・・・
- ベストアンサー
- その他([技術者向] コンピューター)
- .htaccessリダイレクトでの#や&について
ハマってしまいました。ご教授ください。 .htaccessに #(%23) や &(%26) をエンコードしたものを渡すと、返りがなくなってしまうのですが、 引き継ぐ方法はないでしょうか? NEフラグをつけても駄目でした。 以下の検証で試してます。 [.htaccess] RewriteEngine On RewriteRule ^([0-9a-z]{1,10})/(.*)$ x.php?q=$2 [NE,L] [x.php] <?php echo $_GET['q']; ?> http://hogehoge.com/xxx/%23 とアクセスすると、 何も表示されません。 http://hogehoge.com/x.php?q=%23 とアクセスすると、 「#」 と表示されます。
- 締切済み
- Linux系OS
- .htaccessでRewriteRule
.htaccessでパラメータ付のアドレスにRewriteRuleしたいのですが。 例えば test.phpにアクセスされた場合、test.php?id=5 としたいのですが。 現状、下記のように.htaccessに記述したのですがうまくいきません。 RewriteEngine On RewriteRule ^test.php$ /test.php?id=5 [R=301,L] また、test.phpにはパラメータ付(test.php?id=1)でアクセスされる場合もあります。 その場合には、test.php?id=1のままにしたいのですが。 どのように記述したらよろしいのでしょうか。
- 締切済み
- HTML
- PCサイトと携帯サイトを.htaccessで切り分けしたい
今、下記のようにPC用のページと携帯用のページを作っています。 (わかりにくくて申し訳ありません) aaa.bbb -index.html -.htacces | - mobile(フォルダ名) -index.html この状況で、 携帯からPCサイトにアクセスしてきた場合に、 htaccessを使って、強制的に携帯サイト /mobile/index.html に飛ばしたいと思い、下記のような記載にしています。 (なお、ある理由により、http://www.aaa.bbbでアクセスされたものは、強制的に http://aaa.bbb にもしています) -------------------------------------------------------------- RewriteEngine on RewriteCond %{HTTP_HOST} ^(www\.aaa\.bbb)(:80)? [NC] RewriteRule ^(.*) http://aaa.bbb/$1 [R=301,L] RewriteCond %{HTTP_USER_AGENT} ^(DoCoMo|KDDI|DDIPOKET|UP\.Browser|J-PHONE|Vodafone|SoftBank) RewriteRule ^$ /mobile/ -------------------------------------------------------------- .htaccessの基本を理解していないのが問題なのですが、 どうすればうまくできるのかご教授頂けないでしょうか? よろしくお願いします。
- ベストアンサー
- HTML
- Lenovo ideapad 330S-14IKBのメモリ増設について疑問があります。現在のメモリはDDR4-2400 MHzのSODIMM 4G×1とオンボードの4G×1で、最大8GB+4GBまで増設可能なようです。
- 購入した8GBのメモリを使って、オンボードの4Gとデュアルチャンネルを組みたいのですが、これは可能でしょうか?
- Lenovo ideapad 330S-14IKBのメモリ増設に関して調査中です。メモリの現在の構成や最大増設容量などを把握した上で、デュアルチャンネル構成にすることができるか確認します。