php - WordPress Redirection not working after Moving to Subdirectory -
today moved wordpress website root directory subdirectory in same domain. moved files new subdirectory. have setup 301 wildcard redirection hosting cpanel
301 wildcard redirection setting -
old address - https://www.example.com
new address - https://www.example.com/blog/
when visiting post directly https://www.example.com/blog/this-is-a-post showing correct post without error problem when opening same post without "blog" word i.e. https://www.example.com/this-is-a-post showing correct post instead of redirecting https://www.example.com/blog/this-is-a-post.
and when visit through google visiting old address i.e. without word "blog".
one more thing occuring redirecting https://www.example.com https://www.example.com/blog don't want because have different html index file homepage
url settings in wordpress dashboard -
wordpress address (url) - https://www.example.com/blog
site address (url) - https://www.example.com/blog
contents of .htaccess file:
# begin wordpress <ifmodule mod_rewrite.c> rewriteengine on rewritebase /blog/ rewriterule ^index\.php$ - [l] rewritecond %{request_filename} !-f rewritecond %{request_filename} !-d rewriterule . /blog/index.php [l] </ifmodule> # end wordpress
after removal of .htaccess , index.php file of wordpress root directory , removal of 301 redirect cpanel.. problem fixed. have different welcome page in roodex.com , have wordpress blog in roodex,com/blog but problem when visit through google search result google showing old post url links , after visiting through showing "not found" instead of redirecting new url.
assuming serving static files root of site (ie. don't have virtual urls , front controller wordpress) best can redirect request root directory (outside of /blog) not map physical file, /blog subdirectory , hope best. if url doesn't exist within wordpress either you'll wordpress's 404 page.
i assume have .htaccess file in /blog subdirectory handles wordpress requests?
so, in .htaccess file in root of site (which believe empty), try following:
rewriteengine on rewritecond %{request_filename} !-f rewritecond %{request_filename} !-d rewriterule !blog/ /blog%{request_uri} [r=302,l] change 302 (temporary) redirect 301 (permanent) when sure working ok. 301s cached hard browser can making testing problematic.
Comments
Post a Comment