PDA

View Full Version : مشکل در redirect



son_games
چهارشنبه 26 آبان 1389, 17:55 عصر
سلام دوستان.
این کد رو ببینید:


RewriteEngine on
Options +FollowSymlinks

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^post/(.*)?$ newsm.php?newsid=$1 [R=permanent]من میخوام وقتی post/3 رو وارد کردم به newsm.php?newsid=$1 مراجعه کنه، ولی ادرسش همون post/3 باشه. لطفا کمک کنید.

من برای seo frindly میخواهم این کار رو بکنم.

funpatogh
چهارشنبه 26 آبان 1389, 17:59 عصر
اینو امتحان کنید


AddDefaultCharset utf-8
Options +FollowSymlinks
RewriteEngine On
RewriteRule ^(.*).html$ $1.php [QSA,NC,L]
RewriteRule ^post/([0-9]+)/?$ newsm.php?newsid=$1 [QSA,NC,L]

son_games
چهارشنبه 26 آبان 1389, 18:12 عصر
اینو امتحان کنید


AddDefaultCharset utf-8
Options +FollowSymlinks
RewriteEngine On
RewriteRule ^(.*).html$ $1.php [QSA,NC,L]
RewriteRule ^post/([0-9]+)/?$ newsm.php?newsid=$1 [QSA,NC,L]



از جواب سریعتان ممنونم ولی فرقی نکرد.

binyaft
چهارشنبه 26 آبان 1389, 19:23 عصر
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^post/(.*) newsm.php?newsid=$1

funpatogh
چهارشنبه 26 آبان 1389, 19:35 عصر
کد مشکلی نداره شما توی فایل newsm.php
بنویس


echo $_GET['newsid'];

و در آدرس بار هم بزن post/5
چک کنید ببینید مقدار 5 توی صفحه چاپ میشود یا خیر

son_games
پنج شنبه 27 آبان 1389, 16:23 عصر
کد مشکلی نداره شما توی فایل newsm.php
بنویس


echo $_GET['newsid'];
و در آدرس بار هم بزن post/5
چک کنید ببینید مقدار 5 توی صفحه چاپ میشود یا خیر

سلام.

بله کار میکنه. ولی من میخواهم آدرس post/5 باقی بمونه.
لطفا کمک کنید.

در ضمن من این کد رو نوشتم، دوستم گفت اینجوری بهتر گوگل پست ها رو میشناسه:


RewriteEngine on
Options +FollowSymlinks

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^news/(.*).html$ /show.php?show&newsid=$1 [nc]
الان وقتی آدرس news/1.html وارد میشه میره به آدرس show.php?show&newsid=1 .
حالا من میخواهم وقتی آدرس news/1.html رو وارد کرد به show.php?show&newsid=1 مراجعه کنه ولی آدرس تغییر نکنه.

son_games
پنج شنبه 27 آبان 1389, 19:24 عصر
لطفا یکی کمکم کنه.

binyaft
پنج شنبه 27 آبان 1389, 19:49 عصر
داخل newsm دوباره با تابع header کاربر رو به جایی نمیفرسیتد؟

son_games
پنج شنبه 27 آبان 1389, 20:09 عصر
داخل newsm دوباره با تابع header کاربر رو به جایی نمیفرسیتد؟
سلام.
نه، هیچ تغییری نمیدم. ولی من از smarty استفاده میکنم.

funpatogh
پنج شنبه 27 آبان 1389, 20:30 عصر
عزیز شما که ریدایرکت نمیکنید که لینک بخواد عوض بشه این از مزیت های htaccess هست که لینک تغییر نمیکنه و به صورت مخفی به لینک دلخواهت ارجاع میدهد
حتما ایرادی در کدهات داری که ریدایرکت می شه
کلا لینک هایی که به صورت استاتیک یعنی html نمایش بدهید seo بهتری خواهند داشت و حتی این شکل
domain.com/news/varzesh/ali-dae-be-hamedan-raft.html

son_games
پنج شنبه 27 آبان 1389, 21:04 عصر
سلام.
کل کدهای من اینه:

RewriteEngine on
Options +FollowSymlinks
#RewriteRule ^(.*).html$ $1.php [nc]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^news/(.*).html$ http://127.0.0.1/my/show.php?show&newsid=$1 [L]

funpatogh
پنج شنبه 27 آبان 1389, 21:38 عصر
شما این خط


RewriteRule ^news/(.*).html$ http://127.0.0.1/my/show.php?show&newsid=$1 [L]
رو بکنید این:


RewriteRule ^news/(.*).html$ my/show.php?show&newsid=$1 [L]

اسم Domain دیگه لازم نیست و ایراد همین هست

son_games
پنج شنبه 27 آبان 1389, 21:42 عصر
ممنون درست شد. ولی یک مشکل دیگه به وجود اومد.
آدرس عکس ها و css تغییر کرد و دیگه لود نمیشن.
اگر آدرس اونها رو تغییر دهم دیگه آدرس واقعیکار نمیکنه.:ناراحت:

funpatogh
پنج شنبه 27 آبان 1389, 21:51 عصر
عزیز ادرس عکس و css رو توی برنامت باید آدرس کامل بدهید یعنی
http://www.domain.com/css.css , ...

son_games
پنج شنبه 27 آبان 1389, 22:17 عصر
ممنون.مشکلم حل شد.

دو تا سوال دیگه دارم.

1- میشه یک نفر از یک سایت دیگه یه فایل من رو include کنه؟
2- من میخواهم هر کسی به طور مستقیم به فایل های html تمپلیتم دسترسی نداشته باشه، یعنی اگه کسی آدرس template رو وارد کرد خطا بده ولی از طریق سایت باز بشه.


فکر کنم 2 تا سوالم تقریبا یکی بودن.:لبخند:
ممنون میشم جواب بدین.

funpatogh
پنج شنبه 27 آبان 1389, 22:53 عصر
include که نمیتونه بکنه چون فقط توی همون هاست خودش میتونه فایل رو include کنه اما با توابع دیگه میتونه فایل های شما رو بخونه مثل curl , ...
ذر ضمن اگر طرف کمی باهوش باشه میتونه فایل های قالب شما رو پیدا کنه که کنار هم چیده میشن و قالب سایت شما رو تشکیل میدهد ومستقیم آدرس فایل قالب رو بزنه و دانلود کنه
توی htaccess دستوروی بود که میشه باهاش بگی که اگر فلان نوع فایل از آدرسی به جز آدرس سایت شما درخواست داده شد جاش یک فایل دیگه مثل forbiden نمایش بدهد که دستورش رو یادم نیست
با جستجو میتونید پیدا کنید

son_games
پنج شنبه 27 آبان 1389, 23:11 عصر
میشه کمی درباره دستوره curl توضیح دهید؟
منظورتان از خواندن فایل چیه؟ یعنی میتونه یک تایع ای که درون فایل است را صدا کنه ؟

funpatogh
پنج شنبه 27 آبان 1389, 23:16 عصر
نه دیگه شما میگی قالبتون
توی قالب هم که جز html و css چیزی نیستش
با curl هم فقط میتونه بخش html فایلت رو برداره

funpatogh
شنبه 29 آبان 1389, 23:27 عصر
عزیز include کردن یک فایل خارج از هاست در صورت On بودن این تگ هست درسته؟
allow_url_include
که تقریبا توی همه سرور ها off هست